如何在Google colab中使用opencv4使用SIFT和SURF算法?

问题描述 投票:0回答:2
  • 我在 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(最近一次调用最后一次) 在 () 4 Gray_image = cv.cvtColor(图像,cv.COLOR_BGR2GRAY) 5 ----> 6 筛选 = cv.xfeatures2d_SIFT.create() 7 个关键点 = sift.detect(image,None) 8

  • AttributeError:模块“cv2.cv2”没有属性“xfeatures2d_SIFT”
python opencv google-colaboratory sift surf
2个回答
4
投票

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

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


0
投票

我们发现了一些人在使用 Surf 算法时遇到的问题,该问题会导致以下错误消息:

error: OpenCV(4.7.0) /io/opencv_contrib/modules/xfeatures2d/src/surf.cpp:1026: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'

出现此错误是因为 Surf 算法已获得专利,需要特定配置才能启用。

要解决此问题并使其能够在 Google Colab 环境中使用 Surf 算法,请参阅以下 GitHub 存储库和随附的 Google Colab 笔记本:

https://github.com/MJAHMADEE/SURF

该存储库针对该问题提供了全面的解决方案,确保可以使用Surf算法而不会遇到上述错误。存储库中的 Google Colab 笔记本包含详细说明和入门所需的设置。

我们希望这可以帮助您克服问题并顺利地继续您的工作。

© www.soinside.com 2019 - 2024. All rights reserved.