在图像处理的过程中,我们通常会遇到将灰度图像映射成彩色图像的情形(即通常所说的伪彩映射),OpenCV2和OpenCV3中均提供了两个用于伪彩映射的函数——cv::applyColorMap()和cv::LUT()。
1、cv::applyColorMap()
cv::applyColorMap()是使用OpenCV预定义的colormap,将灰度图映射成彩色图像。opencv中提供了12个预定义的colormaps,如下图所示
想要获得更多colormap请查看Python中的彩色映射 和 Python中的彩色映射(续篇)。
具体使用如下:
效果如下:
2、cv::LUT()
虽然cv::applyColorMap()用起来很方便,但是无法支持用户自定义的colormap,而这就需要使用cv::LUT()。
首先是colormap的定义:以256级灰阶为例,所谓colormap就是就是灰度级0-255之间256种色彩的映射表。
cv::LUT()具体使用方法如下:
注意:输入的灰度图,一定要先转换成3通道图(即24位深)。这里,使用了自己定义的一个colormap,效果如下: