一、什么是region?
Region 为某些附和要求性质的像素的子集,或者说一些被选择的图块区域s,region大小不受图像限制(一个点都可成为一个region),有fill和margin两种表达方式,类似于游程编码(一种无损压缩编码),可用于压缩,eg:用a2b3c4代表aabbbcccc
二、halcon中的region操作
1、二值化算子threshold
原文地址
函数原型:threshold(Image: Region: MinGray,MaxGray: )
功能:
使用全局阈值分割图像,获取像素值介于MinGray和MaxGray的区域。
参数列表:
第1个参数Image是输入变量,表示输入图像
第2个参数Region是输出变量,表示被分割后的图像
第3个参数MinGray是输入变量,阈值分割像素的最小值,默认值为128.0,建议可用值:0.0, 10.0, 30.0,64.0, 128.0, 200.0, 220.0, 255.0
第4个参数MaxGray是输入变量,阈值分割像素的最大值,默认值为255.0,建议可用值:0.0, 10.0, 30.0,64.0, 128.0, 200.0, 220.0, 255.0
注:最后两个参数的限制条件:MaxGray>=MinGray。
可能的前置应用函数:histo_to_thresh()(根据直方图决定灰度值门限)、min_max_gray()(计算区域内最大最小灰度值)、sobel_amp()(Sobel算子检测边缘)、binomial_filter()(binomial滤波器平滑图像)、gauss_image()(离散高斯函数平滑图像)、reduce_domain()(缩小图像区域)、fill_interlace()(插补两个半个视频图像)
可能的后置应用函数:connection()(连接区域)、dilation1()(扩大区域)、erosion1()(腐蚀区域,变小)、opening()(打开区域)、closing()(关闭区域)、rank_region()(归类区域)、shape_trans()(改变区域形状)、skeleton()(计算区域框架)
可被替换函数:class_2dim_sup()(采用二维空间像素分类分割图像)、hysteresis_threshold()(磁滞门限操作)、dyn_threshold()(局域阀值分割图像)、bin_threshold()(自动产生的阀值分割图像)、char_threshold()(为提取的字符产生一个分割阀值)、auto_threshold()(直方图决定阀值分割图像)、dual_threshold()(对标记的图像做门限操作)
2、特征选取算子select_shape
当我们想要提取Region时,图像处理后,往往存在几个类似的Region,此时,需要根据Region的一些特殊特征,来选择指定的Region。
求Region指定特征值:region_features(Regions : : Features : Value)
根据特征值选择区域:select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )
例程:select_shape.hdev
read_image(Image,'fabrik')
dev_close_window()
dev_open_window(0,0,512,512,'black',WindowID)
dev_set_color('white')
dev_set_draw('fill')
regiongrowing(Image,Regions,1,1,3,10)
×//区域生长法分割图像以获取区域
dev_set_color('red')
select_shape(Regions,SelectedRegions,'convexity','and',0.95,1)
×//特征为‘凸性’
dev_set_color('green')
select_shape(Regions,SelectedRegions,'width','and',100,512)
×//特征为'宽度'
dev_set_color('blue')
select_shape(Regions,SelectedRegions,'area','and',1,100)
×//特征为‘面积’
其中的算子: regiongrowing(Image: Regions: Row, Column, Tolerance, MinSize:)
函数作用:用区域生长实现图像分割
函数原理:
如果相邻像素的灰度值差小于等于Tolerance,则被融为一个区域。因为矩形一般大于1个像素,所以常常在调用regiongrowing前会用大小至少为Row*Column的低通滤波器平滑一下。如果图像包含小噪声并且矩形很小,平滑后这些因素大都会被去除。而区域包含至少MinSize个点才被挑选出来。区域生长是一个非常快的算子,因此适合用于对时间要求严苛的应用中。
3、区域联合操作