6

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

 1 month ago
source link: https://blog.csdn.net/feixiaoxing/article/details/137063687
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

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

1、五个维度的高低标准

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

e63d227409dc418c9038198e3b4a02c7.png

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

2、创建项目和创建流程

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

3、引入区域提取插件

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

d2f43759bc194206a6ba6e05ef35f7df.png

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

4、整体流程的设计

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

171acecf4e2b41fa91541f9a954c6555.png

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK