安装包含contrib、xfeatures2d库之前,需要卸载之前安装的opencv吗
如果您之前已经通过pip安装了OpenCV,那么在安装包含 contrib
模块和 xfeatures2d
模块的 OpenCV 版本之前,需要先卸载之前安装的 OpenCV 版本。这可以避免不同的OpenCV版本之间的冲突和错误。
您可以使用以下命令卸载之前安装的 OpenCV 版本:
pip uninstall opencv-python
如果您使用的是 Anaconda,可以使用以下命令卸载:
conda uninstall opencv
卸载完成后,您可以使用以下命令安装包含 contrib
模块和 xfeatures2d
模块的 OpenCV 版本:
pip install opencv-contrib-python
请注意,在安装新版本之前,建议备份您的代码和数据,以避免数据丢失。
命名空间 "cv::xfeatures2d" 没有成员 "SIFT"
在配置OpenCV contrib环境时,可能会遇到命名空间 "cv::xfeatures2d" 没有成员 "SIFT" 的问题。这个问题通常是由于编译器不认识"xfeatures2d"命名空间导致的。解决方案是需要包含一个名为"nonfree.hpp"的文件。确保在代码中包含以下头文件:
#include <opencv2/opencv.hpp> #include <opencv2/xfeatures2d.hpp> #include <opencv2/xfeatures2d/nonfree.hpp>
这样可以解决编译错误。另外,还需要注意的是,如果你在Python中使用OpenCV的话,可能会遇到"cv2.xfeatures2d"模块没有"SIFT"属性的问题。这可能是因为Python版本的问题。建议退回到Python 3.4,并确保安装了正确的OpenCV版本。你可以使用以下命令卸载现有的OpenCV版本:
pip uninstall opencv-python
然后安装适用于Python 3.4的OpenCV版本。这样就可以解决命名空间 "cv::xfeatures2d" 没有成员 "SIFT" 的问题了。123
引用[.reference_title]
- 1 2 OpenCV中使用SURF算法报错“xfeatures2d“不是类或命名空间名称的解决办法[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2
allinsert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - 3 Ubuntu pycharm xfeatures2d报错[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2
allinsert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
AttributeError: module 'cv2' has no attribute 'xfeatures2d'
AttributeError: module 'cv2' has no attribute 'xfeatures2d'是由于使用的是新版本的OpenCV导致的错误。在新版本中,cv2模块已经没有xfeatures2d属性了。解决这个问题的方法有两种:
解决办法1:回退到OpenCV的旧版本。可以通过在PyCharm的终端中执行以下命令来卸载当前安装的OpenCV版本并安装旧版本: pip uninstall opencv-python pip install opencv-python3.4.2 pip install opencv-contrib-python3.4.2
解决办法2:如果你使用的是OpenCV的新版本(如4.5.3版本),可以使用cv2.SIFT_create()函数代替cv2.xfeatures2d.SIFT_create()函数。新版本的函数可以实现与旧版本函数相同的功能。
相关推荐










