1. 程式人生 > >【OpenCV】彩色對映

【OpenCV】彩色對映

cv::applyColorMap()與cv::LUT()

1、cv::applyColorMap()

cv::applyColorMap()是使用opencv預定義的colormap,將灰度圖對映成彩色影象。opencv中提供了12個預定義的colormaps,如下圖所示

 

想要獲得更多colormap請檢視Python中的彩色對映 和 Python中的彩色對映(續篇)

具體使用如下:

  1. cv::Mat im_gray = imread("pluto.jpg", cv::IMREAD_GRAYSCALE);

  2. cv::Mat im_color;

  3. cv::applyColorMap(im_gray, im_color, cv::COLORMAP_JET);

 

效果如下:

 

2、cv::LUT()

雖然cv::applyColorMap()用起來很方便,但是無法支援使用者自定義的colormap,而這就需要使用cv::LUT()。

首先是colormap的定義:以256級灰階為例,所謂colormap就是就是灰度級0-255之間256種色彩的對映表。

cv::LUT()具體使用方法如下:

 

  1. cv::Mat image_gray_3c;

  2. //單通道的灰度圖,轉換成R、G、B三通道值均相等的三通道圖

  3. cv::cvtColor(image_gray, image_gray_3c, cv::COLOR_GRAY2RGB);

  4. //opencv預設的顏色排列順序是BGR,而這裡自定義的colormap的順序是RGB

  5. cv::cvtColor(golden_map, golden_map, cv::COLOR_BGR2RGB);

  6. cv::Mat image_color;

  7. cv::LUT(image_gray_3c, golden_map, image_color);

 

 

注意:輸入的灰度圖,一定要先轉換成3通道圖(即24位深)

。這裡,使用了自己定義的一個colormap,效果如下:

 

2017.03.31