Halcon区域的最大、最小灰度值
除了可以使用gray_features算子提取区域中的最大与最小灰度值外,还可以使用min_max gray 算子计算区域的最大与最小灰度值,区别是后者更具灵活性。min_maxgray 算子的原理是基于灰度直方图,取波峰和谷底之间的区域,区域两端各向内收缩一定的百分比,然后在这段范围内计算出最小灰度值和最大灰度值。该算子的原型如下:
bash
min_max _gray ( Regions, Image : : Percent : Min, Max, Range )
其各参数的含义如下。
参数1:Regions(输入参数),表示图像上待检查的一组区域。
参数2:Image(输入参数),表示输入的灰度值图像。
参数3:Percent(输入参数),表示低于最大绝对灰度值的百分比。
参数4:Min(输出参数),表示最小的灰度值。
参数5:Max(输出参数),表示最大的灰度值。
参数6:Range(输出参数),表示最大和最小值之间的区间。
以图(a)为例,这里设置一个百分比值,设为5,即取直方图波峰与谷底之间的区域,向内收缩5%,得到的区域最大灰度值为201.0,最小灰度值为720。图(a)为输入的灰色图像,图(b)为输出的最大、最小值。如果将 min_max_gray 算子的参数3改为0,则灰度直方图不收缩,仍是整个区域的灰度波峰与谷底之间的灰度值,那么结果会和9.2.1小节一样,最大灰度值仍为255.0,最小灰度值为1.0。
上述过程的代码如下:
bash
*读取输入图像
read_image (Image,'disparity.jpg')
*闽值处理,这里主要是为了将图像转化为区域
threshold (Image, Regionl, 1, 255)
*提取该区域中的最大和最小灰度值
min_max_gray(Region1, Image,5,Min, Max, Range)
执行后,得出的具体数值会显示在控制变量窗口中。可根据灰度的最大、最小值进行后续操作,如进一步分割或者求深度等。