关注

VSCode配置opencv-python+opencv-contrib-pyhton实现SIFT和SURF等xfeatures2d模块的角点检测算法

打开anaconda prompt
pip install python==3.6

下面两个网站上下载opencv-python-3.4.2.17.whl、 opencv-contrib-python-3.4.2.17-cp36-win-amd64.whl(64位windows系统)

https://pypi.python.org/pypi/opencv-python

https://pypi.python.org/pypi/opencv-contrib-python

 

 注意图中有yanked红色标签的whl轮子,是已经弃用了的,不要下载。版本高于3.4.3的也不要下载,太高的版本已经把SIFT划分为nonfree模块中了。

 

 在anaconda prompt中打开新建的环境,切换到轮子文件下载文件夹

activate py36
cd downloads
pip install opencv_python-3.4.2.17-cp36-cp36m-win_amd64.whl
pip install opencv_contrib_python-3.4.2.17-cp36-cp36m-win_amd64.whl

然后opencv环境就安装好了。打开VSCode试验一下代码。

import cv2 as cv
def SURF_t(img):
    img1=img
    surf=cv.xfeatures2d.SURF_create()    #SURF示例创建
    kp,des=surf.detectAndCompute(img1,None)    #计算返回值
    img1=cv.drawKeypoints(img1,kp,None,(0,255,0))    #画图,绿色原点
    cv.namedWindow('SURF',cv.WINDOW_NORMAL) #sift 算法专利已经到期了
    cv.imshow('SURF',img1)
    cv.waitKey(0)
    cv.destroyAllWindows() 
def SIFT_T(img):
    img2=img
    sift=cv.xfeatures2d.SIFT_create()    #SIFT示例创建
    kp=sift.detect(img2,None)    #计算返回值
    img2=cv.drawKeypoints(img2,kp,img2)    #画图,绿色原点
    cv.namedWindow('SIFT',cv.WINDOW_NORMAL) 
    cv.imshow('SIFT',img2)
    cv.waitKey(0)
    cv.destroyAllWindows()
if __name__ == '__main__':
    img=cv.imread('img_save\\2021121510470.jpg',0) #图片相对路径
    SIFT_T(img)
    SURF_t(img)

 关于SIFT专利到期的事情,CSDN网站上很多2018年的文章,大多是让降低环境,如果只是想用SIFT算法的话,安装高版本的OPencv中已经嵌入了SIFT算法,CV2.SIFT_CREATE()就能调用。至于想用SURF/SIFT等NONFREE模块算法时,opencv-contrib-python.whl轮子里面没有编译这些专利算法,原因在官网有声明:

大致意思是专利算法,官方不适合去发行和出版,你要是想用的话,自己掂量着来。

OK,学习总结MARK一下。 

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/master_wang22327/article/details/122027424

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--