Opencv学习----图像处理-颜色映射(applyColorMap)

6.3 颜色映射

       人类的感知并不是为了观察灰度图像的细微变化而建立的。人类的眼睛对观察颜色之间的变化更敏感,所以你经常需要对你的灰度图像重新上色,以获得关于它们的线索。OpenCV现在提供了各种颜色映射,以增强计算机视觉应用程序中的可视化。
       在OpenCV中,只需要applyColorMap就可以在给定的图像上应用颜色映射。
       颜色映射包括如下:

Enumeratorcv::ColormapTypes

COLORMAP_AUTUMN 

Python: cv.COLORMAP_AUTUMN

autumn

COLORMAP_BONE 

Python: cv.COLORMAP_BONE

bone

COLORMAP_JET 

Python: cv.COLORMAP_JET

jet

COLORMAP_WINTER 

Python: cv.COLORMAP_WINTER

winter

COLORMAP_RAINBOW 

Python: cv.COLORMAP_RAINBOW

rainbow

COLORMAP_OCEAN 

Python: cv.COLORMAP_OCEAN

ocean

COLORMAP_SUMMER 

Python: cv.COLORMAP_SUMMER

summer

COLORMAP_SPRING 

Python: cv.COLORMAP_SPRING

spring

COLORMAP_COOL 

Python: cv.COLORMAP_COOL

cool

COLORMAP_HSV 

Python: cv.COLORMAP_HSV

HSV

COLORMAP_PINK 

Python: cv.COLORMAP_PINK

pink

COLORMAP_HOT 

Python: cv.COLORMAP_HOT

hot

COLORMAP_PARULA 

Python: cv.COLORMAP_PARULA

parula

6.3.1 Opencv接口

void cv::applyColorMap(InputArray src,
		OutputArray dst,
		InputArray userColor 
	)		
参数
src	CV_8UC1或CV_8UC3类型的灰度或彩色源图像。
dst	目标图像是彩色映射的源图像。注意:Mat::create是在dst上调用的。
userColor 适用于CV_8UC1或CV_8UC3类型和大小为256的颜色映射
void ES::ImageProcessing::colorMapOper(cv::Mat* dst)
{
	Mat temp = imread("lena.jpg", IMREAD_COLOR);
	cv::resize(temp, temp, Size(temp.rows / 4 * 3, temp.cols / 4 * 3));
	//转灰度图
	cv::cvtColor(temp, temp, COLOR_BGR2GRAY);
	cv::Mat src(temp.rows, temp.cols, CV_8UC3);
	bool toRGB = false;
	cv::cvtColor(temp, src, toRGB ? cv::COLOR_BGR2RGB : cv::COLOR_BGRA2BGR, src.channels());

	ImageProcessingParams* img_params = static_cast<ImageProcessingParams*>(m_params);
	ColormapTypes type = (ColormapTypes)img_params->m_colorMapType;
	Mat mat;
	src.copyTo(mat);
	applyColorMap(src, mat, type);
	Mat mergeMat(src.rows, src.cols + mat.cols, src.type());
	Mat submat = mergeMat.colRange(0, src.cols);
	src.copyTo(submat);
	submat = mergeMat.colRange(src.cols, src.cols + mat.cols);
	mat.copyTo(submat);
	mergeMat.copyTo(*dst);
}

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dylan55_you

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值