赞
踩
如果你搜了文档也尝试各种方法都不能解决问题的话,那么看到这里该醒悟了
首先opencv在4.4.0以后可以使用免费使用sift了,但是我们学习肯定不止于此了,但是很遗憾包括最新版本也不能使用surf
如果你学习的是c或者c++语言,相信你可能已经在网上找了大神关于cmake以及vs等编译方法,但是我学的是python啊按照他们的方法都试了,结果依然不行
后来一想花那么长时间配置环境,还不如新建个虚拟环境将opencv降低版本不就好了吗
抱着这样的心态尝试了opencv各种版本,我去有的网友可以有的不可以,我的也不可以,没办法最后选择再降低版本
最后截止到现在尝试3.3.0.10这个版本可以
python -m pip install opencv-python==3.3.0.10
python -m pip install opencv_contrib_python-3.3.0.10
用以下代码尝试下吧
import cv2 import numpy as np import matplotlib.pyplot as plt #print(cv2.__version__) #############尺度不变特征变换################## img_bgr = cv2.imread("images/1.jpg") img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB) plt.figure("sift") sift = cv2.xfeatures2d.SIFT_create() kp = sift.detect(img_bgr) kp, des = sift.detectAndCompute(img_bgr, None) img_kp = np.zeros_like(img_bgr) img_kp = cv2.drawKeypoints(img_rgb, kp, img_kp) plt.imshow(img_kp ) #################加速健壮特征################### #相对于sift方法速度更快 plt.figure("surf") surf = cv2.xfeatures2d.SURF_create() kp = surf.detect(img_bgr) img_kp = cv2.drawKeypoints(img_rgb, kp, img_kp) plt.imshow(img_kp ) plt.show()
最后提醒别花费太多时间配置环境了,提前学习知识,说不定到时候surf专利也到期了是吧!!!哈哈
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。