mirror of
https://github.com/opencv/opencv.git
synced 2025-07-25 22:57:53 +08:00
Merge pull request #19762 from lukasalexanderweber:master
* Error Message for SURF if not implemented In OpenCV 4.5.1 import cv2 as cv cv.xfeatures2d_SURF.create will not create an AttributeError, even if the function is excluded (no nonfree option) In Line 305 (now 306) however ´finder = FEATURES_FIND_CHOICES[args.features]()´ will raise an error: OpenCV(4.5.1) ..\opencv_contrib\modules\xfeatures2d\src\surf.cpp:1029: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'cv::xfeatures2d::SURF::create' So we should check with cv.xfeatures2d_SURF.create() correctly if SURF is available
This commit is contained in:
parent
7949983c41
commit
7c4b873ba3
@ -29,8 +29,9 @@ BA_COST_CHOICES['no'] = cv.detail_NoBundleAdjuster
|
|||||||
|
|
||||||
FEATURES_FIND_CHOICES = OrderedDict()
|
FEATURES_FIND_CHOICES = OrderedDict()
|
||||||
try:
|
try:
|
||||||
|
cv.xfeatures2d_SURF.create() # check if the function can be called
|
||||||
FEATURES_FIND_CHOICES['surf'] = cv.xfeatures2d_SURF.create
|
FEATURES_FIND_CHOICES['surf'] = cv.xfeatures2d_SURF.create
|
||||||
except AttributeError:
|
except (AttributeError, cv.error) as e:
|
||||||
print("SURF not available")
|
print("SURF not available")
|
||||||
# if SURF not available, ORB is default
|
# if SURF not available, ORB is default
|
||||||
FEATURES_FIND_CHOICES['orb'] = cv.ORB.create
|
FEATURES_FIND_CHOICES['orb'] = cv.ORB.create
|
||||||
|
Loading…
Reference in New Issue
Block a user