最近在一个项目中有需要用到将图片从GrayScale转为FalseColor,然而百度了一下Halcon 伪彩色等关键字均找不到相关答案,倒是有很多OpenCV和Matlab的...后来在搜索中看到了一个lut字眼,恍然记起Halcon中有 set_lut 的这条Operator。试了一下果然是这条算子,在这里记录下来,方便其他人搜索。

Halcon中的实现

read_image (Img1, 'img1')
access_channel (Img1, Image, 1)
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
query_lut(WindowHandle,LUTs)
for i := 0 to |LUTs|-1 by 1
dev_set_lut(LUTs[i])
dev_display (Image)
disp_message (WindowHandle, LUTs[i], 'window', 12, 12, 'black', 'true')
wait_seconds(1)
endfor

各个参数效果如下:

Image Processing - Pseudo(False) Color Processing-LMLPHP

伪彩色处理的原理和方法

当然,很多时候Halcon等视觉函数库在给我们提供便利的同时,也会给我们带来桎梏。我们只能使用它们给定的参数,而失去自定义的自由。所以理解原理,在必要的时候可以帮助我们做出自己的函数。

伪彩处理是指将黑白图像转化为彩色图像的一种图像处理技术。主要作用的提高人眼对图像细节的辨识度,主流的伪彩色处理有密度分层法灰度级-彩色变换法

1. 密度分层法

密度分层法:把灰度图像的灰度级分成N个区间,并为每个区间指定一种彩色,如此将一幅灰度图像转变成一幅伪彩图像。

2. 灰度级-彩色变换法

灰度级-彩色变换法:灰度图像的灰度级分别在红、绿、蓝三个通道上有对应的预设函数,三个函数的输出即可组成伪彩色。

Image Processing - Pseudo(False) Color Processing-LMLPHP

3. 总结

伪彩色处理,将灰度空间映射在彩色空间。

05-11 22:23