想要获得更多colormap请查看Python中的彩色映射 和 Python中的彩色映射(续篇)

具体使用如下:

	cv::Mat im_gray = imread("pluto.jpg", cv::IMREAD_GRAYSCALE);
	cv::Mat im_color;
	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()具体使用方法如下:

	cv::Mat image_gray_3c;
	//单通道的灰度图,转换成R、G、B三通道值均相等的三通道图
	cv::cvtColor(image_gray, image_gray_3c, cv::COLOR_GRAY2RGB);
	//opencv默认的颜色排列顺序是BGR,而这里自定义的colormap的顺序是RGB
	cv::cvtColor(golden_map, golden_map, cv::COLOR_BGR2RGB); 
	cv::Mat image_color;
	cv::LUT(image_gray_3c, golden_map, image_color);

注意:输入的灰度图,一定要先转换成3通道图(即24位深)。这里,使用了自己定义的一个colormap,效果如下:

2017.03.31

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐