我无法在OpenCV中使用SIFT

问题描述 投票:0回答:1

我正在使用OpenCV 4.20和PyCharm IDE。我想使用SIFT算法。但是我遇到了这个错误。我在互联网上查看了此错误的解决方案,但没有一个对我有帮助。您知道此错误的解决方案吗? ? (使用pip可以安装至少3.4.2.16版本的OpenCV)

这是我的错误:

追踪(最近通话):在第7行的文件“ C:/Users/HP/PycharmProjects/features/featuredetect.py”中sift = cv.xfeatures2d_SIFT.create()

cv2.error:OpenCV(4.2.0)C:\ projects \ opencv-python \ opencv_contrib \ modules \ xfeatures2d \ src \ sift.cpp:1210:错误:(-213:未实现功能/功能)该算法已获得专利,并且不包含在此配置中;设置OPENCV_ENABLE_NONFREE CMake选项并在函数'cv :: xfeatures2d :: SIFT :: create'中重建库。

这是我的代码:

import cv2 as cv

image = cv.imread("the_book_thief.jpg")
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()
python opencv sift
1个回答
0
投票

您的问题的解决方案应该是安装opencv-python-nonfree(可通过pip获得)。

由于错误,SIFT已获得专利,因此出于许可原因未包含在OpenCV中。它包含在非自由部分中。

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