首页 > 解决方案 > 如何在带有opencv4的Google colab中使用SIFT和SURF算法?

问题描述

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

标签: pythonopencvgoogle-colaboratorysiftsurf

解决方案


首先要做的是查看您正在使用的确切版本,所有版本都在运行:

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


推荐阅读