A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


利用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,。下载后如下安装:


<span style="font-size:18px;">pip install opencv_python-3.3.0+contrib-cp36-cp36m-win_amd64.whl</span>
安装成功后,便可以在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 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马