ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

opencv中的显示查找表LUT代码详解

2021-02-08 14:04:34  阅读:298  来源: 互联网

标签:LUT Mat img opencv 详解 100 256 255


LUT()函数原型

void cv::LUT(InputArray src,InputArray lut,OutputArray dst)
src: 输入图像矩阵,数据类型只能是CV_8U
lut: 256个像素灰度值的查找表,单通道或者与src通道数相同
dst: 输出图像矩阵,尺寸与src相同,数据类型与lut相同

uchar lutFirst[256];
	for (int i = 0; i < 256; i++)
	{
		if (i <= 100)
			lutFirst[i] = 0;
		if (i > 100 && i <= 200)
			lutFirst[i] = 100;
		if (i > 200)
			lutFirst[i] = 255;
	}
	Mat lutOne(1, 256, CV_8UC1, lutFirst);

这是第一层的LUT , 可以根据要求改变参数,Mat类中lutOne是一个一行256列的数组,其中0到100列中对应的是0,101列到200列对应的是100,201列到255列对应的是255

然后读入一个图片Mat img = imread(“lena.jpg”);
LUT(img,lutOne,Mat::out)此函数img就是对应查找表lutOne得出out,img的BGR三个通道像素在0到100的,在out中得出的是0,101到200—>100, 201到255->255
可以在Image Watch中查看

下同

LUT的第二层和第三层代码

uchar lutSecond[256];
	for (int i = 0; i < 256; i++) {
		if (i <= 100) lutSecond[i] = 0;
		if (i > 100 && i <= 150) lutSecond[i] = 100;
		if (i > 150 && i <= 200) lutSecond[i] = 150;
		if (i > 200) lutSecond[i] = 255;
	}
	Mat lutTwo(1, 256, CV_8UC1, lutSecond);
uchar lutThird[256];
	for (int i = 0; i < 256; i++) {
		if (i <= 100) lutThird[i] = 100;
		if (i > 100 && i <= 200) lutThird[i] = 200;
		if (i > 200) lutThird[i] = 255;
	}
	Mat lutThree(1, 256, CV_8UC1, lutThird);

把三层LUT用多通道合并函数合并

vector<Mat> mergeMat;//建立一个向量mergeMat
mergeMat.push_back(lutOne);
mergeMat.push_back(lutTwo);
mergeMat.push_back(lutThree);
merge(mergeMat,Mat::Lutthree);
LUT(img,lutthree,out);

LUT(img,lutthree,out);这个函数意思是img中的B通道对应第一层查找表,G通道对应第二层查找表,R通道对应第三层查找表
在这里插入图片描述

这是原图某一坐标的BGR所对应的像素值
在这里插入图片描述

这是经过LUT查找表后,对应的值

标签:LUT,Mat,img,opencv,详解,100,256,255
来源: https://blog.csdn.net/qq_45425616/article/details/113750341

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有