lsd.cpp:143: error: (-213:The function/feature is not implemented)

问题:

lsd.cpp:143: error: (-213:The function/feature is not implemented) Implementation has been removed due original code license issues in function ‘LineSegmentDetectorImpl’

最近在忙一个项目,初次用ubuntu 系统,编译opencv4.5版本,这个项目用到了边的LineSegmentDetection,自己安装网上的教程编译好了后,编译的具体方法参照如下blog,放入链接如下:
https://blog.csdn.net/yuhuqiao/article/details/84031224

为了追述问题的根源,仔细查看源码,可以看出因为版本比较高,尊重知识产权,在lsd.cpp中加入了这句话,所以不能使用lsd里面的函数,可怕得是这个函数也在LineSegmentDetectorImpl这个函数还在imgproc这个模块中,所以编译后,只要
#include"opencv2/imgproc.hpp", 并且用到了lsd中的函数,就会出现上述错误,提示错误的源码如下:
从上图可以看到加入了CV_Error从而得到了截断了,然后报错为了解决这个问题,我找到了opencv4.5.0版本中的其他函数代替,这个函数的具体的用法可以找到下面的链接,就可以用lsd的类似的功能了:
https://docs.opencv.org/4.1.0/d1/d9e/fld_lines_8cpp-example.html
最后,我展示了使用上述代码,编译和运行的结果,
建立文件lsd_test.cpp,复制代码进去,然后构建build 和 data 目录,在data目录下放入图片,因为代码中需要用到图片如下:
在这里插入图片描述
最后
cd build
在build的目录下打开终端,然后编译lsd_test.cpp
g++ pkg-config opencv --cflags …/lsd_test.cpp -o lsd_test pkg-config opencv --libs
运行
./lsd_test
我输入的图片是:
在这里插入图片描述
输出是:
在这里插入图片描述

希望能帮到大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值