HALCON有很多阈值提取方法,但是真要工业应用能用的并不多。因为工业视觉中,图像因样品不一致,光照不一致,往往导致待提取的物体,并不会简单的只有前景和背景,其直方图,也不会老老实实的仅有两个峰值。像如下这种图片,在工业视觉中,只能是打光非常好的情况下才能出现。 对于这种的提取,设置固定阈值,或者binary_threshold,char_threshold都可以很快把字符分割出来。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210318183940364.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5qaWF5b25nXzUxOA==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210318183847869.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5qaWF5b25nXzUxOA==,size_16,color_FFFFFF,t_70)
类似于HALCON的这几种阈值提取方法,对于界线会变化的场合,有时就不够用了。 但是一般来讲,虽然光源变化,但是对于重复性高的工业场合,往往图片的构成基本上是稳定的。 若从直方图上反应的化,就是直方图的整体形状是类似的,但是由于环境的变化,其分割感兴趣区域的最佳阈值,会随着环境变化而变化。 处理这种变化有以下几种思路: 1.先找到一张基准图像,设置最合适的阈值,然后,后续图像测量图像的平均灰度值(或者其他方法,以评价环境的变化情况),根据环境的变化情况,动态补偿提取的阈值。例如,如果后续图像变亮了,就在最开始设置的阈值上,加上一定的变化量,反之,环境变暗则,减去。 这种方法可以适当的补偿,很多情况下是有用的,但是总有种不放心的感觉,设置这个变化量需要尝试很多,而且不知道能不能完全兼容; 2.方法2,则是从图片角度进行分析,如果感兴趣区域与图片的面积比例关系稳定,则不妨可以可以将这种关系转换为阈值提取的阈值。利用提取图像区域,这个区域占图像的比率稳定为30%; 这种方法的实现的几个步骤可以如下: 1/提取整个区域的直方图(gray_histo); 2/计算直方图累计面积(tuple_cumul) 3/数组计算,获取对应面积区域对应的索引(即阈值) 4/用threshold方法,用刚才的阈值进行提取图像感兴趣区域; 这种方法,对环境整体光源变化影响较小。 3.方法3,通过直方图分析,如果图像有明显的峰值分布,但是并不是如例程中的,只有2个峰值;而是3个,或者更多;而目的需要提取指定峰值区域的部分。可以按下面方法实现: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210318190003855.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5qaWF5b25nXzUxOA==,size_16,color_FFFFFF,t_70)
当让,抑制环境变化的方法还有很多。
|