cv2.so中缺少opencv_contrib中的函数?

时间:2014-08-21 03:54:26

标签: python opencv

在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。

1 个答案:

答案 0 :(得分:1)

首先确保xfeatures2d内有cv2个子模块:输入help(cv2)

您还可以按help(cv2.xfeatures2d)

查看此子模块的说明

现在尝试sift = cv2.xfeatures2d.SIFT_create()创建一个SIFT obj。 然后使用kp, des = sift.detectAndCompute(img,None)提取关键点和描述。