【个人笔记】OpenCV4 C++ 图像处理与视频分析 10课

个人资料,仅供学习使用
修改时间——2022年2月14日 10:59:22
学习课程:OpenCV4 图像处理与视频分析实战教程
课程讲师:贾志刚

10 图像查找表与颜色表

opencv知识点:

  • 查找表 - LUT
  • 颜色表 - ColormapTypes
  • 应用图像映射 - applyColorMap

本科所解决的问题:

  • 什么是查找表?
  • 如何使用查找表?
  • 如何使用OpenCV中的颜色表?
  • 如何循环转换各种颜色风格?

1.图像查找表

图像查找表与颜色表,在图像、视觉相关等的显示场景经常用到。
其中图像查找表,也经常用于加速计算的方面。

查找表介绍

查找表(Look Up Table)简称LUT

通过LUT,可以将一组RGB值输出为另一组RGB值,从而改变画面的曝光与色彩。

LUT(B1, G1, R1) = (B2, G2, R2)

查找表原理

预计算和查找执行
查找表很重要的一点就是预先计算

当我们要处理一个图像,要把每个像素的RGB值通过一个公式转换为另一组RGB值时。

  • 如果图像有1000万个像素点,那就要做几百万次处理,运算量很大,非常慢。
  • 如果事先对0~255做一个数组,每个值执行一次计算, 转换的时候就直接用这个值,这样就会很快。
    查找表就是通过这种预先计算的方式,节约了很多的时间

预计算之后,转换的时候就会通过映射转换成相应的值,而不再一一计算了。示例如下
在这里插入图片描述

查找表演示

查找表有两种使用方式

  • 用自己的查找表
  • 用官方提供的颜色表

当我们用自己的查找表时,要用到这样一个API:LUT

具体介绍如下
LUT

LUT
	共3个参数
		第1个参数 输入
		第2个参数 256个元素的查找表(宽2561 /1256 均可,但后续操作要对应)
		第3个参数 输出

笔者为了方便,直接去官方文档ColormapTypes下载了一个颜色
在这里插入图片描述

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
	Mat src = imread("D:/WorkSpace/Opencv/images/hahaha.jpg");
	if (src.empty()) {
		printf("could not find image file");
		return -1;
	}
	namedWindow("input", WINDOW_AUTOSIZE);
	imshow("input", src);

	Mat color = imread("D:/WorkSpace/Opencv/images/lut.jpg");
	imshow("color", color);
	
	Mat lut = Mat::zeros(1, 256, CV_8UC3);
	//查找表要求有256个元素,选择的color是20*256,所以这里做成1*256

	for (int i = 0; i < 256; i++) {
		lut.at<Vec3b>(0,i) = color.at<Vec3b>(0,i);//0~20选一个值即可,都一样
	}


	Mat dst;
	LUT(src, lut, dst);
	imshow("lut-demo", dst);

	waitKey(0);
	destroyAllWindows();
	return 0;
}

自制查找表的效果比第二种方式要浅一些
在这里插入图片描述

2.图像颜色表

第二种方式的介绍如下

关于图像颜色表的使用,可以阅读 09 Opencv自带颜色表操作,文章中非常详细。

这种方式可以把灰度图像做成伪彩色的效果

本课所用API查阅

LUT

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

applyColorMap

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

ColormapTypes

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啦啦啦大赛第大所

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

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

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

打赏作者

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

抵扣说明:

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

余额充值