在opencv3.0-dev中,大多数非自由的东西都转移到了opencv_contrib。我用opencv_contrib构建它。所有xfeatures2d测试都已通过。
但是,cv2仍然没有SIFT()或SURF()等.GROmb_NEW_PYTHON_SUPPORT的旧技巧现在不起作用。它说:
CMake Warning:
Manually-specified variables were not used by the project:
BUILD_NEW_PYTHON_SUPPORT
任何人都可以告诉我应该使用哪个标志来启用它吗?
它与我在modules / python / common.cmake
中找到的以下代码有什么关系# module blacklist
ocv_list_filterout(candidate_deps "^opencv_cud(a|ev)")
ocv_list_filterout(candidate_deps "^opencv_adas$")
ocv_list_filterout(candidate_deps "^opencv_face$")
ocv_list_filterout(candidate_deps "^opencv_matlab$")
ocv_list_filterout(candidate_deps "^opencv_tracking$")
ocv_list_filterout(candidate_deps "^opencv_optflow$")
ocv_list_filterout(candidate_deps "^opencv_bgsegm$")
ocv_list_filterout(candidate_deps "^opencv_xfeatures2d$")
ocv_list_filterout(candidate_deps "^opencv_ximgproc$")
ocv_list_filterout(candidate_deps "^opencv_xphoto$")
ocv_list_filterout(candidate_deps "^opencv_ts$")
ocv_add_module(${MODULE_NAME} BINDINGS OPTIONAL ${candidate_deps})
ocv_module_include_directories(
"${PYTHON_INCLUDE_PATH}"
${PYTHON_NUMPY_INCLUDE_DIRS}
"${PYTHON_SOURCE_DIR}/src2"
)
似乎所有额外的模块都被列入黑名单?!
哦,似乎在提交31df47b6eaeb753a77f4d0cc3f4225c5c40682f6之后,大多数opencv_contrib都被列入黑名单。
所以我想如果我想使用python,我根本不应该使用opencv 3.0。
答案 0 :(得分:1)
首先确保xfeatures2d
内有cv2
个子模块:输入help(cv2)
。
您还可以按help(cv2.xfeatures2d)
现在尝试sift = cv2.xfeatures2d.SIFT_create()
创建一个SIFT obj。
然后使用kp, des = sift.detectAndCompute(img,None)
提取关键点和描述。