这一行:
sift = cv2.xfeatures2d.SIFT_create()
返回错误:
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'
我读到了有关此错误的一些内容,它出现在 OpenCV 3.0 版本中。 这很奇怪,因为我有 2.4.11 版本。
我检查了 dir(cv2) 并且没有 xfeatures2d 模块。有谁知道为什么?可以单独下载吗?
感谢您帮助解决此问题。
我认为你应该安装 opencv-contrib-python 。 opencv-python 不支持您使用的模块。请参阅opencv-contrib-python。
安装:
pip install opencv-contrib-python
SIFT 是一种专利算法,因此并非在每个 open-cv 版本中都可用。你可以做的是同时安装 opencv 及其 contrib 部分,即
pip install opencv-python==3.3.0.10 opencv-contrib-python==3.3.0.10
SIFT 在以上版本的 opencv 上对我来说工作得很好。
对于 CV2 版本 4.5.1,这有效
sift = cv2.SIFT_create()
kp = sift.detect(gimg,None)
img=cv2.drawKeypoints(gimg,kp,img)
plt.imshow(img)
执行命令后:
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.17
pip install opencv-contrib-python==3.4.2.17
我收到此错误,我所做的就是卸载 opencv 软件包并按以下顺序安装它们。
步骤
通过
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
这解决了我的问题。希望这能解决你的问题!!😁👍
在最新的 CV2 版本 4.5.3.56 中,此功能有效:
img1 = cv2.imread(r'C:\Users\CW\Desktop\new_img.png')
sift = cv2.SIFT_create()
kp1, des1 = sift.detectAndCompute(img1, None)
使用
sift = cv2.SIFT_create()
代替cv2.xfeatures2d.SIFT_create()
,因为sift专利现已过期,因此OpenCV已将SIFT_create()
直接移至主存储库,而不是版本> 4.4中的contrib模块,参见此
我曾经遇到过类似的问题,@srihegde 说你可以尝试卸载 opencv-contrib-python 软件包并重新安装。如果您有 opencv-python 软件包,您也可以尝试卸载它,因为它也可能会弄乱软件包。
这对我有帮助。
卸载:
pip3 uninstall opencv-contrib-python
pip3 uninstall opencv-python
然后安装:
pip3 install opencv-contrib-python
pip3 install opencv-python
我遇到了同样的错误...我已经使用
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
此错误也可能发生在 OpenCV 3+ 中,因为它是由 OpenCV 和 OpenCV-Contrib 包版本不匹配引起的。
我有 OpenCV 版本 3.4.1 和 OpenCV-Contrib 版本 3.4.0。我用 OpenCV-Contrib 尝试了以下操作:
卸载 OpenCV-Contrib 包:
$ pip uninstall opencv-contrib-python
然后再次安装相同的:
$ pip install opencv-contrib-python
pip 自动获取并安装最新的兼容版本。
由于美国专利问题,它不适用于 OpenCV 4.0。也许我们应该为 OpenSift 的努力点赞:
打开 Powershell 提示符并键入以下命令:
pip install --user opencv-contrib-python
帮我修好了。
如果您使用的是 Jupyter Notebook,请打开 Ananconda Powershell 提示符。
pip 安装 opencv-contrib-python==4.5.1.48
正在win10上工作