关于OpenCV中SIFT、SURF无法使用的解决方法

在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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值