最近在一个项目中有需要用到将图片从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
各个参数效果如下:
伪彩色处理的原理和方法
当然,很多时候Halcon等视觉函数库在给我们提供便利的同时,也会给我们带来桎梏。我们只能使用它们给定的参数,而失去自定义的自由。所以理解原理,在必要的时候可以帮助我们做出自己的函数。
伪彩处理是指将黑白图像转化为彩色图像的一种图像处理技术。主要作用的提高人眼对图像细节的辨识度,主流的伪彩色处理有密度分层法和灰度级-彩色变换法。
1. 密度分层法
密度分层法:把灰度图像的灰度级分成N个区间,并为每个区间指定一种彩色,如此将一幅灰度图像转变成一幅伪彩图像。
2. 灰度级-彩色变换法
灰度级-彩色变换法:灰度图像的灰度级分别在红、绿、蓝三个通道上有对应的预设函数,三个函数的输出即可组成伪彩色。
3. 总结
伪彩色处理,将灰度空间映射在彩色空间。