deviation_n(Image : ImageDeviation : : )
deviation_n生成多通道灰度图像逐像素的标准差。
每个坐标点p的期望值定义为算术平均值:
其中g_{c}(p)为通道c上p处的灰度值,n为图像中的通道数。
则标准差本身计算为:
注意,这个公式产生了样本标准差。
因子2用于更好地利用输出图像格式的值范围。
输出图像有一个通道。
例程:
read_image (Image, 'ic')
deviation_n (Image, ImageDeviation)
1.expand_domain_gray(InputImage : ExpandedImage : ExpansionRange : )
expand_domain_gray将域的边界灰度值向外扩展。
膨胀的宽度由参数ExpansionRange 围决定。
HALCON中的所有过滤器都使用域外像素的灰度值,这取决于过滤器的宽度。
这可能导致不良的副作用,特别是在区域的边界地区。
例如,如果图像的前景(域)和背景在亮度上有很大的差异,
过滤操作的结果可能导致域边界处出现不希望出现的变暗或变亮。
为了避免这个缺点,在初始阶段使用expand_domain_gray扩展域,
将边界像素的灰度值复制到域的外部。
此外,域本身也被展开以反映新设置的像素。
因此,在许多情况下,
在使用expand_domain_gray之后再次减少域(reduce_domain或change_domain),
然后调用filter函数是合理的。
ExpansionRange 应设置为滤波器宽度的一半。
例程:
read_image(Fabrik, 'fabrik')
gen_rectangle2(Rectangle_Label,243,320,-1.55,62,28)
reduce_domain(Fabrik, Rectangle_Label, Fabrik_Label)
* 无灰度值展开的字符提取:
mean_image(Fabrik_Label,Label_Mean_normal,31,31)
dyn_threshold(Fabrik_Label,Label_Mean_normal,Characters_normal,10,'dark')
dev_display(Fabrik)
dev_display(Characters_normal)
*结果上,并没有提取边界区域中的字符!
stop()
* 灰度值展开的字符提取:
expand_domain_gray(Fabrik_Label, Label_expanded,15)
reduce_domain(Label_expanded,Rectangle_Label, Label_expanded_reduced)
mean_image(Label_expanded_reduced,Label_Mean_expanded,31,31)
dyn_threshold(Fabrik_Label,Label_Mean_expanded, Characters_expanded,10,'dark')
dev_display(Fabrik)
dev_display(Characters_expanded)
* 现在,即使在边缘区域,这些字符也能被识别出来
|