这一行:
Traceback (most recent call last):
File "C:/Python27/openCVskrypty/GUI/SOLUTION2.py", line 11, in <module>
sift = cv2.xfeatures2d.SIFT_create()
AttributeError: 'module' object has no attribute 'xfeatures2d'
返回错误:
{{1}}
我读过有关此错误的内容,它出现在OpenCV 3.0版中。 这很奇怪,因为我有2.4.11版本。
我检查了dir(cv2),我还没有得到xfeatures2d模块。有谁知道为什么?我可以单独下载吗?
感谢您帮忙解决此问题。
答案 0 :(得分:16)
我认为你应该安装opencv-contrib-python。你正在使用的模块不支持opencv-python。见opencv-contrib-python。
安装:
Data, CompressionInfo, Index
答案 1 :(得分:13)
SIFT是获得专利的算法,因此在每个open-cv版本中均不可用。您可以做的是同时安装opencv及其贡献部分,即
pip install opencv-python==3.3.0.10 opencv-contrib-python==3.3.0.10
SIFT在上述版本的opencv上对我来说效果很好。
答案 2 :(得分:5)
对于 CV2 版本 4.5.1,这有效
sift = cv2.SIFT_create()
kp = sift.detect(gimg,None)
img=cv2.drawKeypoints(gimg,kp,img)
plt.imshow(img)
答案 3 :(得分:2)
问题在于您的OpenCV版本。你说你使用的是版本2.4.11,但是这个版本的OpenCV没有这个方法。
您可以查看documentation。它有features2d
而OpenCV 3.0确实如此。
答案 4 :(得分:1)
您可以改用:
sift=cv2.SIFT()
答案 5 :(得分:1)
执行命令后:
pip install opencv-contrib-python
,出现以下错误:
错误:OpenCV(4.0.0) /Users/rene/build/skvark/opencv-python/opencv_contrib/modules/xfeatures2d/src/sift.cpp:1207: 错误:(-213:未实现功能/功能)此算法 已获专利,并且不包含在此配置中;组 OPENCV_ENABLE_NONFREE CMake选项并在函数中重建库 '创建'
可以在anaconda中使用以下命令解决该问题:
conda install -c menpo opencv
或带有点子:
pip install opencv-python==3.4.2.16
pip install opencv-contrib-python==3.4.2.16
答案 6 :(得分:0)
由于OpenCV和OpenCV-Contrib软件包版本不匹配,在OpenCV 3+中也可能发生此错误。
我有OpenCV版本3.4.1和OpenCV-Contrib版本3.4.0。我用OpenCV-Contrib尝试了以下方法:
卸载OpenCV-Contrib软件包:
$ pip uninstall opencv-contrib-python
然后再次安装相同的内容:
$ pip install opencv-contrib-python
该pip自动获取并安装最新的兼容版本。
答案 7 :(得分:0)
我曾经遇到过类似的问题,如@srihegde所说,您可以尝试卸载 opencv-contrib-python 软件包并重新安装。您也可以尝试卸载 opencv-python 软件包,因为它也可能会与软件包混淆。
这对我有帮助。
卸载:
pip3 uninstall opencv-contrib-python
pip3 uninstall opencv-python
然后安装:
pip3 install opencv-contrib-python
pip3 install opencv-python
答案 8 :(得分:0)
我遇到了同样的错误...我曾经使用cv2.__version__
和cv2.__path__
检查opencv版本和路径。然后,我从 site-packages 中删除了 cv2 。并安装以下内容
pip install opencv-python==3.4.2.17
pip install opencv-contrib-python==3.4.2.17
答案 9 :(得分:0)
我收到此错误,我所做的就是卸载opencv软件包并按以下顺序安装它们。
STEPS
通过 Anaconda Prompt
打开 running as administrator
,然后键入以下命令。
$ pip uninstall opencv-python
$ pip uninstall opencv-contrib-python
然后键入以下命令
$ pip install opencv-contrib-python==3.4.2.16
$ pip install opencv-python==3.4.2.16
这解决了我的问题。希望这能解决您的问题!!??
答案 10 :(得分:0)
由于美国专利问题,它不适用于OpenCV 4.0。也许我们会对OpenSift的努力大加赞赏:
答案 11 :(得分:0)
打开 Powershell 提示符并键入以下命令:
pip install --user opencv-contrib-python
帮我修好了。
如果您使用的是 Jupyter Notebook,请打开 Ananconda Powershell Prompt。