当前位置: 首页 > article >正文

【避坑指南】避免几个坑,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实验大师工具软件


http://www.kler.cn/a/291650.html

相关文章:

  • note40:应用开发规范
  • <项目代码>YOLO Visdrone航拍目标识别<目标检测>
  • 高效处理PDF文件的终极工具:构建一个多功能PDF转换器
  • 《Java核心技术I》Swing的滑动条
  • C#中方法参数传值和传引用的情况
  • html 中 表格和表单的关系与区别
  • 【C-实践】一对一的远程通信(tcp+epoll)
  • 浅谈维度建模、数据分析模型,何为数据仓库,与数据库的区别
  • Shell脚本字符串处理(Linux篇)
  • 机器人笛卡尔空间轨迹规划原理与MATLAB实现
  • Java【操作符】
  • 如何在本地服务器部署SeaFile自托管文件共享服务结合内网穿透打造私有云盘?
  • python办公自动化:使用`Python-PPTX`创建和操作表格
  • 行测笔记_片段阅读1(中心理解)
  • Flink优化之--旁路缓存和异步IO
  • 图像数据处理23
  • git 常用命令合集
  • 为什么要有RPC
  • OpenIPC开源IPC之重要源码包
  • Redis八种数据结构简介
  • pytorch 自定义Dataset类
  • CAS单点登录说明文档
  • EdgeGallery:聚焦 5 大行业场景,MEC 开源平台将 5G 能力拓展到边缘_边缘mec平台
  • Redis 讲解运行模式:单机、主从、哨兵、集群使用场景和区别
  • OpenCV 100道面试题及参考答案(7万字长文)
  • 第4章 汇编语言和汇编软件