threshold(Image:Region:MinGray:MaxGray:)
功能:得到灰度值在最小与最大这间的那些部分。其返回仍然是一个区域。
MinGray<MaxGray.
这个算子可以用灰度直方图求取到最佳的域值
如在上一篇中,我们使用灰度直方图求取图像的最佳阈值,我们发现0-56时最佳,将值代入程序中即可。
read_image(Image, 'Clip')//读取图像
threshold(Image, Region, , )//对图像进行分割
connection(Region, ConnectedRegions)//连通区域
select_obj(ConnectedRegions, ObjectSelected, )//选择区域中的索引区域1
char_threshold(Image,HistoRegion:Characters:Sigma,Percent:Threshold)
功能:阈值分割提取字符
此方法的关键在于找到直方图中的最大值,在最大值的左侧找到关键阈值,其中阈值的计算方法如下:
histogram[threshold]*100.0<histogram[maximum]*(100.0-Percent)
也就是threshold所对应的灰度值频率不能大于最大值频率*(100。0-percent)
例程:
dev_close_window ()
read_image (Alpha1, 'alpha1')
get_image_size (Alpha1, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_display (Alpha1)
dev_set_color ('white')
dev_clear_window ()
char_threshold (Alpha1, Alpha1, Characters, 6, 95, Threshold)
dev_display (Characters)
gray_histo (Alpha1, Alpha1, AbsoluteHisto, RelativeHisto)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
dev_display (Alpha1)
dev_set_color ('green')
gen_region_histo (Histo1, RelativeHisto, 255, 255, 1)