OpenCV4图像处理--图像查找表和颜色表

查找表和颜色表

图像查找表

  • 查找表(look up table )概念
    查找表【i】=new value,查找表第i项(灰度值i)的新值为 new value。也就是,将原图像中像素值为i的像素变为值”new value“。查找表可以看成一个简单的一对一的映射函数 y= f(x)。对于较大的图像,有效的方法是预先计算所有可能的值,然后需要这些值的时候,利用查找表直接赋值即可。查找表是一维或多维数组,存储了不同输入值所对应的输出值,其优势在于只需读取、无需计算,所以大大提高处理速度。
    在这里插入图片描述
  • API : LUT
    PS: 在这里插入图片描述
CV_EXPORTS_W void LUT(InputArray src, InputArray lut, OutputArray dst);
  • 通过自己的色卡 color,制作查找表 lut , 然后将 lut 应用于图像 src
	Mat src = imread("F:/code/images/wm.jpg");
	if (src.empty()) {
		printf("fail to read");
		return -1;
	}
	namedWindow("input", WINDOW_AUTOSIZE);
	imshow("input", src);
	
	//制作查找表 lut
	Mat color = imread("F:/code/images/rainbow.png");//色卡
	Mat lut = Mat::zeros(256, 1, CV_8UC3);//将 color 映射到 像素 0~255
	Mat dst;
	
	for (int i = 0; i < 256; i++) {
		lut.at<Vec3b>(i, 0) = color.at<Vec3b>(11, i);
	}
	LUT(src, lut, dst);

	imshow("color", color);
	imshow("lut", lut);
	imshow("lut demo", dst);

在这里插入图片描述

图像颜色表

  • 颜色表概念
    opencv applyColorMap 提供12种颜色查找表
    在这里插入图片描述
  • API : applyColorMap
CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, int colormap);
  • 通过使用颜色表,选择不同风格进行图像处理
	Mat src = imread("F:/code/images/wm.jpg");
	if (src.empty()) {
		printf("fail to read");
		return -1;
	}
	namedWindow("input", WINDOW_AUTOSIZE);
	imshow("input", src);
	
	//颜色表 :下例应用了 COLORMAP_CIVIDIS 风格
	Mat dst2;
	applyColorMap(src, dst2, COLORMAP_CIVIDIS);
	imshow("color_map demo", dst2);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值