计算机视觉
图像处理

Halcon学习之三:操作图像区域

Halcon学习:获取Image图像中Region区域的特征参数

area_center_gray ( Regions, Image : : : Area, Row, Column )

计算Image图像中Region区域的面积Area和重心(Row,Column)。

cooc_feature_image ( Regions, Image : : LdGray, Direction : Energy,

Correlation, Homogeneity, Contrast )

计算共生矩阵和推导出灰度特征值

Direction:灰度共生矩阵计算的方向

Energy:灰度值能量

Correlation:灰度值的相互关系

Homogeneity:灰度值的均匀性

Contrast:灰度值的对比度

cooc_feature_matrix ( CoocMatrix : : : Energy, Correlation,

Homogeneity, Contrast )

根据共生矩阵计算灰度特征值

elliptic_axis_gray ( Regions, Image : : : Ra, Rb, Phi )

计算Image图像的Region区域的Ra,Rb和Phi。

entropy_gray ( Regions, Image : : : Entropy, Anisotropy )

Image图像中Region区域的计算熵Entropy和各向异性Anisotropy。

estimate_noise ( Image : : Method, Percent : Sigma )

从单一图像 Image中估计图像的噪声。

Sigma:加性噪声的标准偏差

Method :估计噪声的方法

Method∈{foerstner、immerkaer、least_squares、mean}、

fit_surface_first_order ( Regions, Image : : Algorithm, Iterations,

ClippingFactor : Alpha, Beta, Gamma )

计算一阶灰度平面的灰度矩阵和灰度值的逼近参数。

Algorithm:采用的算法

Algorithm:迭代次数

ClippingFactor:消除临界值的削波系数

fit_surface_second_order ( Regions, Image : : Algorithm, Iterations,

ClippingFactor : Alpha, Beta, Gamma, Delta, Epsilon, Zeta )

计算二阶灰度平面的灰度矩阵和灰度值的逼近参数。

fuzzy_entropy ( Regions, Image : : Apar, Cpar : Entropy )

确定区域Regions的模糊熵 将图像视为模糊集合

Apar为模糊区域的起始点

Cpar为模糊区域的结束点

Entropy为Regions的模糊熵

fuzzy_perimeter ( Regions, Image : : Apar, Cpar : Perimeter )

计算Region区域的模糊周长

gen_cooc_matrix ( Regions, Image : Matrix : LdGray, Direction : )

生成Image图像Region区域的共生矩阵

gray_histo ( Regions, Image : : : AbsoluteHisto, RelativeHisto )

获取Image图像Region区域的灰度相对直方图RelativeHisto和绝对直方图AbsoluteHisto。

注意:Region区域必须先计算过它的直方图。

gray_histo_abs ( Regions, Image : : Quantization : AbsoluteHisto )

获取Image图像Region区域的灰度绝对直方图AbsoluteHisto。

Quantization:灰度值的量化、

gray_projections ( Region, Image : : Mode : HorProjection,

VertProjection )

计算Region区域在水平方向和垂直方向的灰度值投影。

histo_2dim ( Regions, ImageCol, ImageRow : Histo2Dim : : )

计算二通道灰度图像的直方图

intensity ( Regions, Image : : : Mean, Deviation )

计算region区域的灰度平均值和偏差

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

计算Region区域的最大最小灰度值。

Range:最大灰度值和最小灰度值之间的差距

moments_gray_plane ( Regions, Image : : : MRow, MCol, Alpha, Beta,

Mean )

计算平面的灰度矩阵和灰度值的逼近参数。

plane_deviation ( Regions, Image : : : Deviation )

逼近的图象平面计算灰度值偏差

select_gray ( Regions, Image : SelectedRegions : Features, Operation,

Min, Max : )

根据灰度值选择区域

Features∈{area、row、column、ra、rb、phi、min、max、mean、deviation、plane_deviation、anisotropy、entropy、fuzzy_entropy、fuzzy_perimeter、moments_row、moments_column、alpha、beta}

Operation∈{and、or}

shape_histo_all ( Region, Image : : Feature : AbsoluteHisto,

RelativeHisto )

shape_histo_point ( Region, Image : : Feature, Row,

Column : AbsoluteHisto, RelativeHisto )

获取阈值特征直方图

Feature∈{connected_components、convexity、compactness、anisometry、holes}

程序:

read_image (Image, 'G:/Halcon/机器视觉/images/bin_switch/bin_switch_3.png')
regiongrowing (Image, Regions, 3, 3, 1, 500)
area_center_gray (Regions, Image, Area, Row, Column)
cooc_feature_image (Regions, Image, 6, 0, Energy, Correlation, Homogeneity, Contrast)
elliptic_axis_gray (Regions, Image, Ra, Rb, Phi)
entropy_gray (Regions, Image, Entropy, Anisotropy)
estimate_noise (Image, 'mean', 20, Sigma)
fit_surface_first_order (Regions, Image, 'regression', 5, 2, Alpha, Beta, Gamma)
fit_surface_second_order (Regions, Image, 'regression', 5, 2, Alpha1, Beta1, Gamma1, Delta, Epsilon, Zeta)
fuzzy_entropy (Regions, Image, 0, 255, Entropy1)
fuzzy_perimeter (Regions, Image, 0, 255, Perimeter)
gen_cooc_matrix (Regions, Image, Matrix, 6, 0)
dev_set_paint ('histogram')
gray_projections (Regions, Image, 'simple', HorProjection, VertProjection)
histo_2dim (Regions, Image, Image, Histo2Dim)

运行结果:

Halcon学习:改变图像的现实方式和大小

change_format ( Image : ImagePart : Width, Height : )

改变Image图像大小,而且ImagePart图像为灰度值图像。

crop_domain ( Image : ImagePart : : )

从Image图像中裁剪一个矩形区域。这个矩形的周长最小。

crop_domain_rel ( Image : ImagePart : Top, Left, Bottom, Right : )

删除相关区域,Top为顶端裁剪的行数,Left,Bottom,Right类似。

crop_part ( Image : ImagePart : Row, Column, Width, Height : )

删除一个矩形图像区域。Row为右上角的列标索引。Width, Height为新图像ImagePart的宽度和高度。

crop_rectangle1 ( Image : ImagePart : Row1, Column1, Row2,

Column2 : )

删除一个矩形图像区域。

tile_channels ( Image : TiledImage : NumColumns, TileOrder : )

将多通道图像平铺为一幅大的单通道图像。NumColumns为平铺的列数。TileOrder为平铺的方式。

tile_images ( Images : TiledImage : NumColumns, TileOrder : )

将多通道平铺。

程序:

read_image (Image, 'G:/Halcon/机器视觉/images/brycecanyon1.png')
get_image_pointer1 (Image, Pointer, Type, Width, Height)
change_format (Image, ImagePart, Width/2, Height/2)
crop_domain (Image, ImagePart1)
crop_domain_rel (ImagePart1, ImagePart2, -20, -20, -1, -1)
crop_part (ImagePart2, ImagePart3, 100, 100, Width, Height)
crop_rectangle1 (ImagePart3, ImagePart4, 100, 100, 200, 200)
tile_channels (Image, TiledImage, 2, 'horizontal')
tile_images (Image, TiledImage1, 1, 'vertical')
tile_images_offset (Image, TiledImage2, 0, 0, 50, 50, -1, -1, Width, Height)

处理效果:

Halcon学习:图像区域叠加与绘制

overpaint_gray ( ImageDestination, ImageSource : : : )

将灰度值不相同区域用不同颜色绘制到ImageDestination中, ImageSource包含希望的灰度值图像

overpaint_region ( Image, Region : : Grayval, Type : )

将Region以一个恒定的灰度值绘制到Image图像中

paint_gray ( ImageSource, ImageDestination : MixedImage : : )

将ImageSource的图像绘制到ImageDestination中,形成MixedImage。

paint_region ( Region, Image : ImageResult : Grayval, Type : )

将Region以一个恒定的灰度值绘制到Image图像中

paint_xld ( XLD, Image : ImageResult : Grayval : )

将XLD以一个恒定的灰度值绘制到Image图像中

set_grayval ( Image : : Row, Column, Grayval : )

设置Image图像中坐标为(Row,Column)的灰度值

程序:

read_image (Image, 'G:/Halcon/images/images/claudia.png')
gen_circle (Circle, 200, 200, 100.5)
reduce_domain (Image, Circle, ImageReduced)
gen_image_proto (Image, ImageCleared, 32)
overpaint_gray (ImageCleared, ImageReduced)
gen_image_const (Image1, 'byte', 512, 512)
overpaint_region (Image1, Circle, 255, 'fill')
* /* Copy a circular part of the image  into the image : */
read_image (Image2, 'G:/Halcon/images/images/brycecanyon1.png')
paint_gray (ImageReduced, Image2, MixedImage)
* /* Paint a rectangle into the image  */
read_image (Image3, 'G:/Halcon/images/images/pads.png')
gen_rectangle1 (Rectangle1, 30, 20, 100, 200)
paint_region (Rectangle1, Image3, ImageResult, 255, 'fill')
* /* Paint colored xld objects into a gray image */
* /* read and copy image to generate a three channel image */
copy_image (Image2, image0)
copy_image (Image2, image1)
compose3 (image0, Image2, image1, MultiChannelImage)
* /* extract subpixel border */
threshold_sub_pix (MultiChannelImage, Border, 128)
* /* select the circle and the arrows */
circle := Border[14]
arrow := Border[16]
ObjectsConcat := [circle,arrow]
* /* paint a green circle and white arrows (to paint all
* * objects e.g. blue, pass [0,0,255] tuple for GrayVal) */
paint_xld (ObjectsConcat, MultiChannelImage, ImageResult1, [0,1,0,1,1,255])

处理效果:

转载请注明来源:CV视觉网 » Halcon学习之三:操作图像区域

分享到:更多 ()
扫描二维码,给作者 打赏
pay_weixinpay_weixin

请选择你看完该文章的感受:

0不错 9超赞 0无聊 0扯淡 0不解 0路过

评论 10

评论前必须登录!