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
要做的第一件事是查看您正在使用的确切版本,所有版本都刚刚运行:
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
我们发现了一些人在使用 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 笔记本包含详细说明和入门所需的设置。
我们希望这可以帮助您克服问题并顺利地继续您的工作。