python - 如何在带有opencv4的Google colab中使用SIFT和SURF算法?
问题描述
- 我在 Google Colab 上的代码
import cv2 as cv
image = cv.imread("/content/drive/My Drive/Image.bmp")
gray_image = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
sift = cv.xfeatures2d_SIFT.create()
keyPoints = sift.detect(image,None)
output = cv.drawKeypoints(image,keyPoints,None)
cv.imshow("FEATURES DETECTED",output)
cv.imshow("NORMAL",image)
cv.waitKey(0)
cv.destroyAllWindows()
- 错误
*AttributeError Traceback (最近一次调用最后一次) in () 4 gray_image = cv.cvtColor(image,cv.COLOR_BGR2GRAY) 5 ----> 6 sift = cv.xfeatures2d_SIFT.create() 7 keyPoints = sift.detect(image,无)8
- AttributeError:模块“cv2.cv2”没有属性“xfeatures2d_SIFT”
解决方案
首先要做的是查看您正在使用的确切版本,所有版本都在运行:
print (cv2 .__ version__)
如果版本 = 4.4.0那么sift = cv2.SIFT_create ()
如果版本 = 4.3.x那么sift = cv2.xfeatures2d.SIFT_create ()
如果Version = 4.2.x 或 4.1.xu 4.0.x,那么 SIFT 将不起作用,在构建 python 包、激活 open-contrib 模块以及使用算法时不考虑它免费尚未激活。
在 google colab 上,您只需使用前面带有感叹号“!”的pip命令即可安装所需的 opencv 版本。并指定opencv版本如下:
!pip install opencv-contrib-python==4.4.0.44
注意: 在我写这篇文章时,C++ 中 openv 的最后一个可用版本是 4.5.0 版本,opencv python 包的最新版本是 4.4.0.44
推荐阅读
- jquery - $_File 在 ajax 中发送时不发送
- python - 哪个是不正确的变量?
- vue.js - 如何修复错误 v-bind 表达式的值不能为空 Vue Js
- javascript - 通过映射的 onPress 事件切换对象属性
- deployment - 部署使用foundation-cli创建的项目?
- html - Internet Explorer 中图像的大小问题
- groovy - “错误:无法找到或加载主类#”同时打开 groovy 控制台
- ios - 在 iOS13 上使用 UINavigationController 作为 UISplitViewController 的子级时未调用 ViewDidLoad 和 WillHideViewController
- lombok - 构造函数上的龙目岛建造者应该只有一个吗?
- java - Android OpenCv:在不重新分配的情况下编辑 ImageView Mat