Halcon 图像增强

Halcon中增强图像的对比度也是预处理中的一环,主要有如下方式:

1.灰度值线性变换

1)scale_image()

scale_image(Image : ImageScaled : Mult, Add : )——缩放图像的灰度值
原理:可以理解为用一个模板扫描图像中的每一个像素,模板中像素最大值和最小值的差作为模板中心像素点的值。
功能描述: g’ := g * Mult + Add 为当前的灰度值。由公式可以看出scale_image算子处理图像是个线性变化,因此会扩大图像的对比度,会让黑的地方更黑,亮的地方更亮。
Mult 为所乘的系数,Add为加的偏移值。最佳Mult和Add值的选取由下:
在这里插入图片描述
其中:GMin为图像的最大灰度值,GMax为图像的最小灰度值。
可配合算子min_max_gray得到。min_max_gray(Regions, Image : : Percent : Min, Max, Range)确定区域内的最小和最大灰度值

2)scale_image_max()

scale_image_max(Image:ImageScaleMax::)
作用:按最大比例增强对比度,最大化图像的灰度值。该算子计算像素的最大和最小值,按照最大值比例化各个像素。
参数列表
参数1(in):输入图像,多通道图像
参数2(out):增强后图像

2.增强图像对比度

1)emphasize()

emphasize(Image : ImageEmphasize : MaskWidth, MaskHeight, Factor : )

作用:增强图像的高频区域(边缘和拐角)的对比度,使图像看起来更清晰。

Image:输入的要增强的图像;ImageEmphasize:输出的对比度增强的图像; MaskWidth, MaskHeight:输入的掩膜宽度、高度;
示例

read_image(Image,'monkey')
dev_display (Image)
draw_region (Region, 200000)
reduce_domain(Image,Region,Mask)
emphasize(Mask,Sharp,7,7,2.0)
dev_display (Sharp)

结果显示如下,分别为原图、region、增强后的region:

2)mult_image()

mult_image(Image1, Image2 : ImageResult : Mult, Add:)
作用:将两幅图像相乘。其效果会增加图像的对比度。即白越白黑越黑,中间灰度值像素很变少。
功能描述:输入图像的灰度值按以下表达式变换:(g1, g2)分别表示输入图像的像素值,gr是输出图像

 gr := g1 * g2 * Mult + Add

参数列表:
参数1(in):输入图像1
参数2(in):输入图像2
参数3(out):输出图像
参数4(in):乘数因子,限制条件:-255.0 <= Mult <= 255.0
参数5(in):加数因子,限制条件:-512.0 <= Add <= 512.0

示例

dev_update_off ( )
dev_close_window ( )
read_image (Image, 'monkey')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_display (Image)
* 预处理
mult_image(Image,Image, ImageResult, 0.0067, 0)
scale_image_max(ImageResult, ImageScaleMax)
* bit_not(ImageScaleMax, ImageNot)
mult_image(ImageScaleMax, ImageScaleMax, ImageResult1, 0.005, 0)

原图与图像增强后图像如下所示:
Halcon 图像增强_第1张图片

3)illuminate()

illuminate(Image : ImageIlluminate : MaskWidth, MaskHeight, Factor : )
作用:增强图像的高频区域(边缘和拐角)的对比度,使图像看起来更清晰。

参数1(in) Image:输入的要增强的图像;
参数2(out) ImageEmphasize:输出的亮度增强的图像;
参数3、4(in) MaskWidth, MaskHeight:输入的掩膜宽度、高度。
示例

read_image(Image,'fabrik')
dev_display (Image)
illuminate(Image,Better,40,40,0.55)
dev_display (Better)

两对输入图像和输出图像分别如下所示:Halcon 图像增强_第2张图片

3.直方图均衡化

equ_histo_image()

equ_histo_image(Image : ImageEquHisto : : )
作用: 增强图像的对比度,采用直方图的方式。

4.灰度图像形态学

1)gray_opening

gray_opening(Image, SE : ImageOpening : : )
作用:灰度值开运算。结构元素在图像中遍历,灰度值最低的值作为新值,有使图像变暗的作用。

2)gray_closing

gray_closing(Image, SE : ImageClosing : : )
作用:灰度值关运算。结构元素在图像中遍历,灰度值最高的值作为新值,有使图像变亮的作用。

3) gray_range_rect

gray_range_rect(Image : ImageResult : MaskHeight, MaskWidth : )
作用:计算灰度值范围。即,输入图像的灰度值最大值和最小值的差值(最大值-最小值),在矩形掩模内的每个图像点的大小(掩模高度,掩模宽度)。

你可能感兴趣的:(Halcon视觉库,Halcon,图像增强)