上位机图像处理和嵌入式模块部署(qmacvisual区域提取)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        在图像处理中,由两部分比较重要,一个是区域分割,一个是区域提取。区域分割,比较好理解,就是把图像中重要的内容彼此分割开。这里面就涉及到色彩提取、边缘提取、二值化、膨胀、腐蚀等操作。甚至于说,如果软件算法不满足区域分割要求,还需要光源的配合。有了区域分割之后,接下来就是区域提取,这部分也比较重要。

        所谓的区域提取,就是通过自定义一些过滤条件,把我们感兴趣的区域提取出来。目前opencv里面SimpleBlobDetector自带的提取条件比较少,主要包括了面积、灰度、圆度、惯性和凸度这五个维度。但是真正的商用软件halcon,这方面的过滤标准要多的多。大家在软件开发的时候,不妨多看看halcon上面提取的条件有哪些。

1、五个维度的高低标准

        关于opencv提供的这五个维度,它的标准是什么样的。其实opencv官方已经提供了相应的测试范例,我们直接看这个测试范例就可以学习了。

        如图所示,这5个标准,从上到下依次是面积、灰度阈值、圆度、惯性、凸度。面积比较好理解,就是从小到大的顺序。灰度也不难,就是从灰到黑的程度。圆度的话,就是从有棱有角到边缘光滑的过程。惯性有点复杂,简单看,可以认为是直线到圆的过程。凸度可以反过来看,凹进去部分越少,那么凸度就越高。

2、创建项目和创建流程

        熟悉了上面的知识点,接下来就可以开始准备实验操作了。首先,还是要创建项目、创建流程。

3、引入区域提取插件

        区域提取的插件位于【检测识别】-》【斑点分析】,直接用鼠标把它拖到流程下面即可。双击之后,不出意外我们就可以看到这样的窗口,

        需要配置的内容主要就是输入图像、检测条件、具体条件的参数。检测条件可以单选,或者是多选 。具体条件的参数,大家根据自己的需求,灵活做出选择。在上面的tab页中,还有一个ROI配置,这部分也可以搭配着灵活使用。

4、整体流程的设计

        区域选择还是比较简单的。我们在实际测试的时候,一般还要搭配上获取图像、图像显示,这样效果比较好一点。

        另外,还想表达的一点,就是opencv自身提供的检测条件远远不能满足需求,很多时候需要我们自己手写代码筛选出合格的区域。这里的条件比如长度、宽度、长宽之比、周长、具体圆度的系数、颜色区间、区域的roi位置、区域占整幅图像的比例等等。所以,实际情况要比opencv提供的case要复杂得多,大家可以参考opencv的做法,对于特定的场景,自己去写代码筛选就可以了。本身opencv提供的方法,仅仅是起了一个抛砖引玉的作用。

最近更新

  1. TCP协议是安全的吗?

    2024-03-27 16:14:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-27 16:14:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-27 16:14:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-27 16:14:03       20 阅读

热门阅读

  1. 基于Qt的插件扩展

    2024-03-27 16:14:03       20 阅读
  2. 了解 C++ 中的三元运算符

    2024-03-27 16:14:03       18 阅读
  3. chrome安装vue插件vue-devtools

    2024-03-27 16:14:03       25 阅读
  4. 计算两点距离工具类

    2024-03-27 16:14:03       19 阅读
  5. ardupilot开发 --- 机载(边缘)计算机-VISP-附录 篇

    2024-03-27 16:14:03       19 阅读
  6. Python GUI编程(Tkinter)

    2024-03-27 16:14:03       16 阅读