处理前景和背景对比度不高
虽然上一篇说不想写scale_image_max,其实还是要写的,不过我感觉scale_image_max挺麻烦的,要先查看图像的灰度直方图,再来判断是否合适。这里就用Halcon官方案例,毕竟要了解这个东西怎么用。
本篇为scale_image_max。
问题分析
图片的背景和前景的对比度不高,使用threshold等阈值分割,效果不好,这时需要考虑增强对比度。
算子介绍:最大灰度值扩展在值范围为0到255之间的应用。
算子本体:scale_image_max(Image : ImageScaleMax : : )
参数解释:scale_image_max(输入图像: 输出图像: : )
eg.scale_image_max(Image,ImageScaleMax )
最大灰度值扩展是一种图像增强的方法,旨在最大化图像的对比度。它通过将图像像素的灰度值重新映射到0到255的范围内来实现。
这种方法会拉伸或压缩图像的灰度值范围,把图像中最暗的像素值变为0,最亮的像素值变为255,并将中间的灰度级按比例映射到整个0到255的范围内。这样做可以增加图像中不同灰度级之间的差异,使图像的细节更加突出和清晰。最大灰度值扩展常用于提高图像的视觉效果,增强图像的对比度和明暗细节。
算子缺点
了解了一波知道这个算子的缺点就是,当图像的灰度直方图分布及其均匀,从0-255都有像素分布,那这个算子就没啥功能了,那要咋知道这个图像是这个球性呢。
方法1.
读取图片,转换成灰度图,打开Halcon灰度直方图,我这个图其中的像素灰度及其靠近0,有大部分像素甚至就处在255,这样的情况就无法使用scale_image_max
方法2.
使用min_max_gray,这个算子会得到这张图像的最低灰度和最高灰度,就能依据这个数来判断是否能使用scale_image_max。可以看到我这张图是完全不适合使用,最低灰度值为6,最高灰度值为255,使用scale_image_max,将最低灰度值从6变成0,最高灰度值从255变成255,整张图片变换后与变换前差距几乎没有,所以几乎没有效果。
Halcon有官方案例可以查看,那个就挺好的。