【OpenCV3】彩色映射——cv::applyColorMap()与cv::LUT()详解
2017-06-23 10:29
976 查看
在图像处理的过程中,我们通常会遇到将灰度图像映射成彩色图像的情形(即通常所说的伪彩映射),OpenCV2和OpenCV3中均提供了两个用于伪彩映射的函数——cv::applyColorMap()和cv::LUT()。
1、cv::applyColorMap()
cv::applyColorMap()是使用opencv预定义的colormap,将灰度图映射成彩色图像。opencv中提供了12个预定义的colormaps,如下图所示
想要获得更多colormap请查看Python中的彩色映射 和 Python中的彩色映射(续篇)。
具体使用如下:
[cpp] view
plain copy
print?
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()具体使用方法如下:
[cpp] view
plain copy
print?
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,效果如下:
1、cv::applyColorMap()
cv::applyColorMap()是使用opencv预定义的colormap,将灰度图映射成彩色图像。opencv中提供了12个预定义的colormaps,如下图所示
想要获得更多colormap请查看Python中的彩色映射 和 Python中的彩色映射(续篇)。
具体使用如下:
[cpp] view
plain copy
print?
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()具体使用方法如下:
[cpp] view
plain copy
print?
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,效果如下:
相关文章推荐
- 【OpenCV3】彩色映射——cv::applyColorMap()与cv::LUT()详解
- opencv中伪彩色applyColorMap函数(C++ / Python)
- opencv中伪彩色applyColorMap函数(C++ / Python)
- 【OpenCV3】颜色空间转换——cv::cvtColor()详解
- 【OpenCV3】颜色空间转换——cv::cvtColor()详解
- opencv 3.0 灰度图 转 彩图 applyColorMap
- 【OpenCV】cvFindContours参数详解
- Learning OpenCV:cvCvtColor and cvCanny
- opencv android 图像处理错误error: (-215) scn == 3 || scn == 4 in function void cv::cvtColor(const
- OpenCv 源码初探之:cvCvtColor
- MFC消息映射BEGIN_MESSAGE_MAP详解
- 【OpenCV3】视频读写——cv::VideoCapture和cv::VideoWriter详解
- 类文件Hibernate 之List ,Bag,Map三种映射文件详解
- OpenCv学习笔记(二)--Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解
- hibernate学习之七(hibernate映射map详解)
- 【OpenCV3】cv::Mat类成员函数详解
- 用cvCvtColor转化RGB彩色图像为灰度图像时发生的小失误
- openCV--颜色空间转换函数cvCvtColor
- Hibernate 之List ,Bag,Map三种映射文件详解
- Opencv 中重映射的remap函数中map_x,map_y的困惑说明