打开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