在OpenCV3中SIFT,SURF等算法去哪了?

本人是在Windows 7下Anaconda 4.4配置的OpenCV,Python版本是3.6.1,如下图所示:


利用pip install opencv_python-3.3.0-cp36-cp36m-win_amd64.whl 进行安装,安装成功,import cv2没出错,但是在

进行 detector=cv2.SIFT()时显示错误:AttributeError: module 'cv2' has no attribute 'SIFT',通过查找相关资料得知,原来在OpenCV2中的“non-free” modules不再是默认安装的,它们均被集中在opencv_contrib中,在配置OpenCV时需要同OpenCV源码一块编译,本人要在Python下使用OpenCV,在编译时需要Python支持,网上有相关教程,细节操作可行性不强。还好,在Python下有已经编译好的opencv_contrib库,但是目前仅支持Python3.5和3.6,。下载后如下安装:

pip install opencv_python-3.3.0+contrib-cp36-cp36m-win_amd64.whl

安装成功后,便可以在Python下使用SIFT和SURF等特征了,示例程序如下:

import cv2

img = cv2.imread('cat.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

surf = cv2.xfeatures2d.SURF_create()
kp = surf.detect(gray, None)

img = cv2.drawKeypoints(gray, kp, img)

cv2.imshow("img", img)

k = cv2.waitKey(0)
if k & 0xff == 27:
    cv2.destroyAllWindows()
运行结果如下:













参考资料:

1. http://www.pyimagesearch.com/2015/07/16/where-did-sift-and-surf-go-in-opencv-3/

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值