前言
在图像去噪以后,图像经常变得模糊,图像对比度减小,为了增强图像对比度,我们可以指定需要拉伸的灰度范围来对感兴趣的灰度进行拉伸,同时也可以将被拉伸的灰度拉伸到指定的灰度范围。
1、分段灰度拉伸原理
该算子通过指定一个源灰度区间 [Min, Max],将该区间线性拉伸到指定的输出范围[DstMin, DstMax] 。在此区间之外的像素,其灰度值会被剪切为输出范围的最小值或最大值[DstMin, DstMax]。
基本公式:
scale_image_range(Image, ScaledImage,[Min, DstMin],[Max, DstMax])
其内部执行的操作等效于以下逻辑:
剪切:将图像中所有小于 Min 的像素值设为DstMin(输出最小值),所有大于 Max 的像素值设为DstMax(输出最大值)。
线性映射:将灰度值在 [Min, Max] 区间内的像素,线性映射到 [DstMin, DstMax]的范围。
2、halcon算子应用
csharp
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
read_image (Image, Selection)
scale_image_range (Image, ImageScaled1, [100,0], [200,50])
灰度拉伸scale_image_max算子总共有4个参数,如下:
第1个参数是输入图像
第2参数是灰度拉伸后的输出图像
第3个参数是被拉伸的最小灰度以及拉伸后输出的最小值
第4参数是被拉伸的最大灰度以及拉伸后输出的最大值
3、图像处理后效果
1)处理前

2)处理后

上面的代码将灰度处于100到200的图像拉伸到0到50,对于灰度小于100的直接置为0,对于灰度大于200的直接置为50