SIFT算法用不了解决办法

在Ubuntu18.04系统中,由于OpenCV默认不包含专利算法,使用SIFT时出现错误。为启用SIFT等专利算法,需在编译OpenCV时设置-DOPENCV_ENABLE_NONFREE=ON,并指定opencv_contrib模块路径。经过重新编译和安装,可以成功启用并使用这些算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:ubuntu18.04,opencv-contribute和opencv(注意版本一致)已经装好,win11

一、在用SIFT算法的时候,出现了报错:

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 'create'

二、原因是pencv_contrib提供了一些有专利的函数。

三、解决办法:

在opencv的目录下mkdir build,再cd build

cmake -D OPENCV_ENABLE_NONFREE:BOOL=ON -D INSTALL_C_EXAMPLES=ON OPENCV_EXTRA_MOUDLES_PATH=绝对路径/opencv_contrib-3.4.16/modules ..
make
sudo make install

-D OPENCV_ENABLE_NONFREE:BOOL=ON 语句可以生成SURF等有专利的算法的库,有了这些库就可以使用SURF等算法

至此,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值