OpenCV查找表应用

概念

OpenCV查找表的定义:
查找表【i】=newvalue
查找表第i项(灰度值i)的新值为 newvalue。也就是,将原灰度图像中灰度值为i的像素变为灰度值”newvalue“。查找表可以看成一个简单的一对一的映射函数 y=f(x)。
为什么要用查找表?
查找表用起来比较方便,对于一些简单灰度图像变换,可以定义多个查找表。然后使用同一个调用函数,调用不同的查找表,实现不同的功能。

应用

查找表应用在灰度图像中,它有点像一个向量(1行256列),256列对应0~255灰度值。
定义查找表代码如下:

cv::Mat lookup_negative(1, 256, CV_8U);//矩阵只有1个通道,用CV_8U类型

接下来,定义查找表中的映射函数

//变负片
for (int i = 0; i < 256; i++)
		lookup_negative.at<uchar>(i) = 255 - i;

现在定义了一个生成负片图像的查找表,然后调用该查找表处理图像。

//读取原图像
cv::Mat image = cv::imread("图像.jpg", 0);
//保存结果
cv::Mat result;
//将原图像变为负片
cv::LUT(image, lookup, result);
cv::imshow("负片",result);

函数cv::LUT(),将定义的查找表应用在原图像,并输入结果图像。该函数有三个参数,第一个参数是输入图像,第二参数是查找表,第三个参数是输出图像。

在实现一些简单的灰度图像变换时,可以定义多个查找表实现不同的功能(如负片,灰度增强、二值化等等),也可以将其封装在类中。在程序中只需要用一条代码 cv::LUT()调用便可。

OpenCV2系列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

林多

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

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

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

打赏作者

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

抵扣说明:

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

余额充值