赞
踩
在opencv中,使用cv2进行创建SIFT、SURF对象时,会显示cv2中没有create()方法。具体解决方法如下:
更换python版本、opencv-python版本
如果python版本不是3.7,需要卸载当前版本的python
如果opencv版本不是3.4.2,需要卸载当前当前opencv-python和opencv-contrib-python第三方包(我个人只卸载了opencv-python)
这里需要注意,python版本要与opecv版本要匹配,否则在通过pip下载opencv时,无法在镜像文件中或者官网中找到opencv的3.4.2版本。
- pip uninstall opencv-python
- pip uninstall opencv-contrib-python
下载python3.7,在此版本下通过pip下载opcv-python3.4.2.16以及opencv-contrib-python3.4.2.16
- # 使用清华镜像文件
- pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python==3.4.2.16
- pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python==3.4.2.16
-
-
- # 直接install
- pip install opencv-python==3.4.2.16
- pip install opencv-contrib-python=3.4.2.16
- # 创建SIFT对象
- sift=cv2.xfeatures2d.SIFT_create()
- # opencv4.4.0以上的版本可以直接使用cv2.SIFT_create()
- # 创建SURF对象
- surf=cv2.xfeatures2d.SURF_create()
- # 我所遇到surf对象的创建是通过这种方式创建成功,python版本是3.7,opecv版本是3.4.2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。