ImportError DLL load failed: %1 不是有效的 Win32 应用程序 module 'cv2.cv2' has no attribute 'xfeatures2d'

ImportError DLL load failed: %1 不是有效的 Win32 应用程序

在使用Pycharm进行opencv的学习过程中,遇到了导入cv2包之后报错的问题,而且一般是出现在 使用了 xfearures2d 模块的时候

这些错误一般是有两种形式:

  1. 主要内容是 ImportError DLL load failed: %1 不是有效的 Win32 应用程序
  2. 大概内容是 module ‘cv2.cv2’ has no attribute ‘xfeatures2d’

这两种情况其实都是由于同一种情况引起的:版本问题

比如按照我的版本来说,我的Python 是3.7.1的新版本,当然在学习到opencv(以下简称cv)的时候,我也下载了最新版本的4.0.0.21 最初的时候,我去网上搜索一些解决方法的时候,会看到很多人说,是由于Python和cv的版本不配套,但是,我更换了几个cv版本之后问题照样存在,也有的说是Python的版本不对,我有更换了几次Python的版本,问题还是没解决。最终我是在Git-hub上面找cv官方对于使用者的一些回答的时候发现了最终的解决方案。
确实是cv版本不对,但不是网上有人说的和Python版本不配套的问题,而是cv版本过高的问题!一开始我也有点诧异,以前从来是听说什么什么版本过低引发问题,这次竟然是过高。而事实就是这样,因为cv官方在某个时候申请了这个算法的专利,所以 xfeatures2d 已经不能随便用了。
那么,最重要的,解决方案如下:

  1. 不仅要下载opencv-python,还要下载一个opencv-contrib-python:
    1.1 如果你是Pycharm,直接在file-settings里面下载即可;
    1.2 如果是其他的,其实都可以在CMD里下载,首先要有pip,然后就可以执行下面两端代码:

    1.2.1 pip install opencv-python ==3.4.2.16
    1.2.2 pip install opencv-contrib-python == 3.4.2.16

  2. 要求这两个包的版本是3.4.2.16;

  3. 重现启动软件,比如说我的是Pycharm;

  4. 完成工作,解决问题;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值