【避坑指南】避免几个坑,OpenCV的轮廓分析速度也可以很快!

前一篇请看CSDN 博文
【性能飞升】OpenCV-Python改动一行代码性能提升百倍以上

学习《OpenCV应用开发:入门、进阶与工程化实践》一书
做真正的OpenCV开发者,从入门到入职,一步到位!

缘由

这个是跟CCL分析速度很慢的姊妹篇文章,还是下面这张图,我用OpenCV实验大师工具软件进行轮廓分析的时候发现速度非常慢,大概需要6000毫秒左右,这个让自己都很不好意思说什么,但是我肯定这个不是OpenCV的问题,是合理使用的问题,于是我开启了针对相关代码的仔细检查。
在这里插入图片描述

原因分析与代码修改

首先排除findContours函数很慢这种错误说法,亲测针对3200x3200,有上千个轮廓的二值图像,OpenCV4.8版本的findContours函数运行时间不到9毫秒即可完成。我的代码会循环每个轮廓然后对它们做各种统计处理,其中有两个最值得怀疑的地方,

第一个地方是因为OpenCV本身没有求最大内接圆的函数,所以我自己写了一个,这个里面调用了OpenCV的点多边形测试pointPolygonTest函数,这个函数多个循环很容易造成性能瓶颈,以前我就这样被坑过,直接把这个函数替换了。

第二个函数就是针对轮廓点有个拟合直线的操作,这种不分析轮廓横纵比直接拟合直线操作毫无必要,个人感觉那个fitLine是针对所有点实现最小二乘的,这样下去搞上千次,感觉容易成为瓶颈,所以本人就大胆把这两个毫无必要的操作都给注释了,然后在开发环境下启动OpenCV实验大师工具软件重新测试,奇迹发生了,运行速度从原来的6000毫秒左右变成了500毫秒左右了
在这里插入图片描述

同样修改了C++ SDK以后,测试结果从原来的2000多毫秒,直接下降到70多毫秒,从此我又相信OpenCV了。测试结果截图如下:
在这里插入图片描述

后记:

用好一个框架,扬长避短,解决实际问题,零代码实现多种OpenCV算法集成与快速交付,请选择 OpenCV实验大师工具软件 及其支持C++ /Python SDK,让你事半功倍,十倍提升OpenCV项目交付速度。

OpenCV C++ 工作流引擎SDK开发与集成视频教程点击这里

点击这里下载 OpenCV实验大师工具软件

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gloomyfish

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值