python找不到对象报错代码_OpenCV 学习笔记 06 SIFT使用中出现版权问题error: (-213:The function/feature is not implemented),wi...

本文详细记录了解决OpenCV使用SIFT特征检测时遇到的版权问题错误(-213)的过程。错误源于SIFT算法的专利限制,解决方案包括安装opencv-contrib-python、考虑版本问题以及通过CMake重新编译OpenCV。重点介绍了通过CMake设置OPENCV_ENABLE_NONFREE选项来启用非免费模块,并在Visual Studio中编译成功。
摘要由CSDN通过智能技术生成

1 错误原因

1.1 报错全部信息:

cv2.error: OpenCV(4.0.1) D:\Build\OpenCV\opencv_contrib-4.0.1\modules\xfeatures2d\src\sift.cpp:1207: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function ‘cv::xfeatures2d::SIFT::create’

1.2 报错信息分解:

1、  cv2.error: OpenCV(4.0.1) D:\Build\OpenCV\opencv_contrib-4.0.1\modules\xfeatures2d\src\sift.cpp:1207:

错位代码定位

2、  error: (-213:The function/feature is not implemented)

error 代号,函数 / 功能无法实现

3、 This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function ‘cv::xfeatures2d::SIFT::create’

error 信息,该算法(SIFT)已经获得专利,在此配置中不包括,设置 OPENCV_ENABLE_NONFREE CMake 选项并在函数 ‘ cv :: xfeatures2d :: SIFT :: create ‘ 中重建库

2 修缮工程(守城)

该修改工程属于消极防御,记为守城之策。

2.1 方案一:安装opencv-contrib-python

采用 opencv-contrib-python 而非 opencv-python 。在 opencv-contrib-python 版本中含有额外模块( Extra modules ),而 opencv-python 版本中只含有基础模块。

网上有人说是 SIFT 申请了算法专利保护,所以就将 SIFT 放置在了 Extra modules 模块中,故安装 opencv-contrib-python 是能用的。

当然这个说法也是对的,官网【点击查看】上确实看到 Extra modules 中包含有  xfeatures2d. Extra 2D Features Framework 函数 / 功能。

2.2 方案二:版本问题

有人按照方案一操作,依据不可行,所以又出现了版本问题,确切地说 opencv-contrib-python 3.4.3.18之前是有效的。因为我在寻找解决办法时,好多解决办法都是降低版本至 3.4.3.16。完美解决该问题。但 – 但 – – 但 – – – 但这是2019 年 03 月 09 日。

由于我想的是越高的版本其算法应该会越好,bug 应该也越小。所以不想降低版本来实施运算;所以这个解决方案没有采用。

网上到处都是赋值粘贴的,也不注明出处。

2.3 方案三:按照报错信息去解决

写下一段插曲,算是反思吧。

查找原因顺序是,

1、先检索了报错代

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值