打開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一下,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/386747.html
標籤:其他
