Halcon算子注解

按功能来排序会比较容易查找。注意补充数学原理和项目经验的体会。

[作用]:

[数学原理]:

[参数说明]:

[项目体会]:

目录

【类型1】

1.access_channel(MultiChannelImage:Image:Channel)

【仿射】

1.vector_angle_to_rigid(::Row1,Column1,Angle1,Row2,Column2,Angle2:HomMat2D)

【阈值分割】

1.var_threshold(Image:Region:MaskWidth,MaskHeight,StdDevScale,AbsThreshold,LightDark:)


【类型1】

1.access_channel(MultiChannelImage:Image:Channel)

作用:访问一个多通道图像的其中一个通道。

[数学原理]:

[参数说明]:

[项目体会]:

【仿射】

1.vector_angle_to_rigid(::Row1,Column1,Angle1,Row2,Column2,Angle2:HomMat2D)

[作用]:

从点和角度计算刚性仿射变换。

[数学原理]:

原始点的角度被传递到(Row1,Column1),而相应的角度被传递到Angle1,转换后的点的坐标被传入(Row2,Column2),而相应的角度被传入Angle2。

[参数说明]:

Row1:原始点的行坐标。Column12:原始点的列坐标。Angle1:原始点的角度。

Row2:变换后的点的行坐标。Column:变换后的点的列坐标。Angle2:变换后的点的角度。

HomMat2D:输出变换矩阵。

[项目体会]:这个算子的目的是为了得到一个从第一个点的坐标和角度转换为后一个点的变换矩阵。配合使用。比如可以第一个图像有角度phi,可以设定第二张图像角度为0从而,使用仿射变换算子affine_trans_image可以达到使第一张图像角度为零的效果。

【阈值分割】

1.var_threshold(Image:Region:MaskWidth,MaskHeight,StdDevScale,AbsThreshold,LightDark:)

[作用]:

通过局部均值和标准差分析对图像进行阈值化。

[数学原理]:

滤波器掩码的大小由MaskWidth,MaskHeight定义,决定了要分割的对象的大小。但是,如果选择的掩码太大,非常接近的对象可能会被合并。

StdDevScale:局部的标准差被用作图像中噪音的度量。它可以通过stdDevScale进行缩放以反应所需的灵敏度。较高的灵敏度意味仅选择与周围非常不同的像素。

AbsThreshold:在图像的同质区域,标准差较低,因此单个灰度值的影响很大,为了降低均匀区域中算子的灵敏度,可以调整AbsThreshold,因此,均匀环境中微小的灰度值变化可以忽略不计。

LightDark:’light'和‘dark'分别返回比周围环境亮或者暗的像素。’eaual'

返回未被这两个选项选中的像素。‘not_equal'返回’light'和‘dark'的组合结果。

var_threshold从输入图像Image中选择满足阈值条件的区域,阈值根据每个像素(x,y)周围大小MaskWidth,MaskHeight的灰度掩码的平均值和标准差来计算的。

g(x,y) 是输入图像中位置(x,y)处的灰度值。

m(x,y)是对应的灰度平均值。

d(x,y)是周围掩码中对应的标准差。然后变量阈值v(x,y)被定义为:

v(x,y)=max(StdDevScale*d(x,y),AbsThreshold),StdDevScale>=0,

或者

v(x,y)=min(StdDevScale*d(x,y),AbsThreshold),for StdDevScale<0

解释:对于一个正的StdDevScale,每一个像素进行分析,确定用户定义的AbsThreshold或者缩放的标准差是否更大,选择较大的值作为可变阈值v(x,y),对于负的StdDevScale,选择相应的较小的值。

如果LightDark='light',

g(x,y) \geqslant m(x,y)+v(x,y)

如果LightDark='dark',

g(x,y)\leqslant m(x,y)-v(x,y)

[参数说明]:

Image:输入图像。MaskWidth:掩码宽度的平均值和偏差计算。MaskHeight:掩膜高度的平均值和偏差计算。StdDevScale:灰度值的标准差因子。AbsThreshold:与平均值的最小灰度值差。LightDark:阈值类型。

Region:分割的区域。LightDark:局部亮或者暗

[项目体会]:

【类型2】

min_max_gray(Regions,Image::Percent:Min,Max,Range)

[作用]:确定区域的最小和最大灰度值。

[数学原理]:运算符min_max_gray创建输入图像区域内灰度值绝对频率的直方图,并计算对应于输入图像区域的像素数百分比。然后,它在直方图的两侧按此像素数向内移动,并确定最小和最大灰度值。例如:面积为60,百分比为5,则表示3个像素。直方图[2,8,0,7,13,0,...,10,10,5,3,1,1],最大值为255,最小值为0,范围为255,Min为1,Max为253,灰度范围Range=252

[参数说明]:

[项目体会]:如果,百分数Percent为零,则计算灰度的最小值和最大值。

你可能感兴趣的:(机器视觉,Halcon)