halcon学习之基于灰度的特征提取

这节主要介绍通过灰度进行特征的选择和提取,基于区域特征进行提取的估计大家都会,这里不再细说,本节通过灰度提取针对某些场合会很有用,例如在三维类的视差图进行处理时,这方面用的是比较多的,废话不多说,下面开始:

halcon学习之基于灰度的特征提取_第1张图片

 

*主要介绍是基于灰度进行提取特征的算法,其实更多的是使用区域方法,大家应该和熟悉了,这里只介绍
*通过灰度的使用。
*gray_features(Regions, Image : : Features : Value)
*该算子是用于计算指定区域的灰度特征值,其输入是一组区域,每个区域的特征都存储在一组value数组中
*典型的基于灰度值的特征如下:
*area、row、colum、ra、rb、phi、min、max

read_image (Image, 'F:/机器视觉/Halcon机器视觉算法原理与编程实战/code/code/data/disparity.jpg')

*1.区域的灰度特征值
threshold (Image, Regions, 1, 255)
*提取灰度最小值和最大值
gray_features (Regions, Image, 'min', Value)
gray_features (Regions, Image, 'max', Value1)
*输出是:
*Value=1.0
*Value1=255.0

*2.区域的最大和最小灰度值
*也可以使用min_max_gray,把参数Percent设置为0,结果和gray_features相同
*该算子的可以得到想要的区间的灰度值,然后进行后续处理,如进一步分割或者求深度
min_max_gray (Regions, Image, 0, Min, Max, Range)
min_max_gray (Regions, Image, 5, Min1, Max1, Range1)
*Min=1.0
*Max=255.0
*Range=254
*Min=39.0
*Max=187.0
*Range1=148

*3.灰度的平均值和偏差
*intensity用于计算单张图像上多个区域的灰度平均值和偏差
intensity (Regions, Image, Mean, Deviation)
*Mean=81.9698
*Deviation=48.974


*4.灰度区域的面积和中心
*主要算子是area_center_gray,该算子和area_center算子很类似,但是不同的是
*area_center_gray图像的灰度值可以理解为图像的高度,其面积可以理解为图像的体积,每个灰度的图像
*可以理解为点的质量,计算得到的中心是图像区域的重心。
area_center_gray (Regions, Image, Area, Row, Column)
*Area=7.32048e+006
*Row=102.693
*Column=178.468

*5.根据灰度特征值选择区域
read_image (Image1, 'F:/机器视觉/Halcon机器视觉算法原理与编程实战/code/code/data/village')

rgb1_to_gray (Image1, GrayImage)
median_image (GrayImage, ImageMedian, 'circle', 2, 'mirrored')
threshold (ImageMedian, Regions1, 180, 255)
opening_circle (Regions1, RegionOpening, 6.5)
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 5000, 20000)
*获取这些区域的平均值和偏差,因为湖面的灰度变换很小,因此偏差会很小
intensity (SelectedRegions, ImageMedian, Mean1, Deviation1)
select_gray (SelectedRegions, ImageMedian, SelectedRegions1, 'deviation', 'and', 0, 9.188)
dev_display (GrayImage)
dev_display (SelectedRegions1)

halcon学习之基于灰度的特征提取_第2张图片

你可能感兴趣的:(机器视觉,halcon学习,c++)