halcon特征提取(四)region特征和灰度特征

引言:特征提取是缺陷检测和分类器的重要基础,由于网络资料匮乏,这个系列的贴子勇哥会长期更新,以充实其内容。


在halcon中,有“特征直方图”。

image.png

其中“特征”下拉列表中有一些项目,它根据你选择的对象是region还是xld而有不同的项目。

对于region来讲,这些特征项目分为两类:

region_features和gray_features,即region特征和灰度特征。


下面的两个算子可以取这上面两类特征:

region_features(Regions : : Features : Value)
gray_features(Regions, Image : : Features : Value)


image.png


region_features的全部特征是:

 'anisometry', 'area', 'area_holes', 'bulkiness', 'circularity', 'column', 
 'column1', 'column2',  'compactness', 'connect_num', 'contlength',
 'convexity', 'dist_deviation', 'dist_mean',  'euler_number', 'height',
 'holes_num', 'inner_height', 'inner_radius', 'inner_width',
 'max_diameter', 'moments_i1', 'moments_i2', 'moments_i3', 'moments_i4', 
 'moments_ia', 'moments_ib', 'moments_m02', 'moments_m02_invar', 'moments_m03',
 'moments_m03_invar', 'moments_m11', 'moments_m11_invar', 'moments_m12', 
 'moments_m12_invar', 'moments_m20', 'moments_m20_invar', 'moments_m21', 
 'moments_m21_invar', 'moments_m30', 'moments_m30_invar', 'moments_phi1', 
 'moments_phi2', 'moments_psi1', 'moments_psi2', 'moments_psi3', 'moments_psi4', 
 'num_sides', 'orientation', 'outer_radius', 'phi', 'ra', 'rb', 'rect2_len1', 
 'rect2_len2', 'rect2_phi', 'rectangularity', 'roundness', 'row', 'row1', 'row2', 
 'struct_factor', 'width'

gray_features全部特征是:

 'alpha', 'anisotropy', 'area', 'beta', 'column', 'deviation', 'entropy', 
 'fuzzy_entropy', 'fuzzy_perimeter', 'max', 'mean', 'min', 'moments_column', 
 'moments_row', 'phi', 'plane_deviation', 'ra', 'rb', 'row'


这些特征的解释更详细的请看下面两个贴子:

特征直方图的特征参数    http://www.skcircle.com/?id=1633

halcon算子:region_features   http://www.skcircle.com/?id=1617


我们如果想使用region的两类特征特征进行过滤操作,则要使用下面两个算子:

select_shapet和select_gray。

select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )
select_gray(Regions, Image : SelectedRegions : Features, Operation, Min, Max : )


select_gray和select_shapet的区别是,前者是基于灰度值过滤region,后者是基于基本几何特征、形态学、连通区域等方式过滤region。


下面重点看几个不常见的gray_features,其它简单的特征可看下上面那两个贴子。


(1) gray_deviation  

即灰度值偏差。


这个特征也可由算子intensity计算。它可以同时计算灰度平均值与灰度标准差。

intensity(RegionsImage : : : MeanDeviation)


这个特征经常用于:通过灰度值信息过滤掉不需要的region


在下面的动图中,勇哥演示了使用gray_deviation仅保留灰度强度最高的那几个region。


演示代码:

read_image (Qq20210129193158, 'C:/Users/Administrator/Desktop/QQ图片20210129193158.jpg')
rgb1_to_gray(Qq20210129193158, GrayImage)
threshold (GrayImage, Regions, 18, 111)
connection(Regions, ConnectedRegions)
select_gray (ConnectedRegions, Qq20210129193158, SelectedRegions1, 'deviation', 'and', 12.309, 20.001)


录像2_转.gif


可能有胸弟会问,上面的需求我直接一个threshold不就搞定了,为啥要再加一个select_gray过滤一下?

第一个threshold是确定了缺陷出现的最大可能范围,而后面的select_gray过滤gray_deviation特征是为了筛选出满足条件A的缺陷。

然后我可能会用select_gray综合其它的特征再过滤出其它的条件的缺陷B、C、E。
而且,gray_deviation并不是threshold,它是基于灰度值的利用统计算法过滤的特征。

所以,我没有脱裤子放屁。


(2)moments_gray_plane

计算一个平面的灰度值矩和近似值。

参数Alpha,Beta和 Mean描述了该区域上方的平面。

Alpha表示沿线轴方向(“向下”)的坡度,Beta沿线轴方向(“右侧”)的坡度。


read_image (Image, 'mreut')
gen_rectangle1 (Rectangle, 50, 340, 180, 464)
moments_gray_plane (Rectangle, Image, MRow, MCol, Alpha, Beta, Mean)
get_image_size (Image, Width, Height)
*创建一个斜坡灰度图像
gen_image_gray_ramp (ImagePlane, Alpha, Beta, Mean, MRow, MCol, Width, Height)
sub_image (ImagePlane, Image, ImageSub, 1, 128)


原图

image.png


处理后。其中红色矩形处为参考平面的位置。

image.png



--------------------- 

作者:hackpig
来源:
www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864