对于module ‘cv2.cv2‘ has no attribute ‘xfeatures2d‘问题的解决
对于module ‘cv2.cv2’ has no attribute 'xfeatures2d’问题的解决在opencv库中调用ORB、SIFT和SURF算法进行特征匹配时出现module ‘cv2.cv2’ has no attribute 'xfeatures2d报错,看了多篇博文之后,总结如下。博主自己的环境配置:windows10 python3.7.9 opencv-python4.5
对于module ‘cv2.cv2’ has no attribute 'xfeatures2d’问题的解决
在opencv库中调用ORB、SIFT和SURF算法进行特征匹配时出现module ‘cv2.cv2’ has no attribute 'xfeatures2d报错,看了多篇博文之后,总结如下。
博主自己的环境配置:windows10 python3.7.9 opencv-python4.5.1.45 opencv-contrib-python4.5.1.48
1.ORB算法
ORB算法可以直接在上述环境中调用,调用命令为:
cv2.ORB_create()
2.SIFT算法的报错处理
参考博文:https://blog.csdn.net/Gordon_Wei/article/details/88920411
opencv4.4.0以上的版本就可以直接调用SIFT算法了,只需要对调用命令做如下调整:
我们只需要将:
cv2.xfeatures2d.SIFT_create()
改为:
cv2.SIFT_create()
做完如上调整后,在博主自己的环境中运行正常。
3.SURF算法的报错处理
需要对opencv降级,降到opencv-python3.4.2.16 opencv-contrib-python3.4.2.16,博主使用的是pycharm,所以直接在pycharm里处理,具体操作如下:
1)首先在pychram->file->Settings->Python Interpreter里卸载原来版本的opencv
先选中要卸载的包,然后点击右上角的减号进行卸载,按照上述步骤可将opencv-python4.5.1.45 opencv-contrib-python4.5.1.48卸载。
2)opencv包的安装
点击加号,进入安装界面。
按照上述步骤安装好opencv-python3.4.2.16和opencv-contrib-python3.4.2.16,二者安装好之后即可正常使用SURF算法
此时的环境配置应该是:windows10 python3.7.9 opencv-python3.4.2.16 opencv-contrib-python3.4.2.16
3)SURF的调用命令
cv2.xfeatures2d_SURF.create()
4.总结
按照上述方法配置好的环境,可以在python中正常调用ORB、SIFT和SURF算法不会产生报错。
特别提醒在opencv降级后,ORB和SIFT算法可能无法使用,要想使用的话,需要将opencv升级到4.4.0以上版本。
尽可能使用Python3.7及以下版本,因为opencv-python3.4.2.16等库,没有适配Python3.8以上的版本,如果使用Python3.8以上版本,可能导致opencv-python3.4.2.16安装不上。
更多推荐
所有评论(0)