如何在带有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跟踪(最近一次通话) 在()中 4 gray_image = cv.cvtColor(image,cv.COLOR_BGR2GRAY) 5 ----> 6筛选= cv.xfeatures2d_SIFT.create() 7个关键点= sift.detect(image,None) 8

  • AttributeError:模块'cv2.cv2'没有属性'xfeatures2d_SIFT'

解决方法

要做的第一件事是查看您正在使用的确切版本,所有版本都在运行:

print (cv2 .__ version__)

如果 version = 4.4.0 ,则sift = cv2.SIFT_create ()

如果 version = 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