当需要与多个阈值进行比较,就需要用到显示查找表(Look-Up-Table,LUT)。LUT查找表简单来说就是一个像素灰度值的映射表,它以像素灰度值作为索引,以灰度值映射后的数值作为表中的内容。例如,一张像素值0到255的灰度图片,灰度值大于0小于100的像素点设置为1,大于等于100小于200的像素点设置为2,大于等于200小于255的图片设置为3。使用LUT()函数用于实现图像像素灰度值的LUT查找表功能。
1、LUT()函数
void cv::LUT(InputArray src,
InputArray lut,
OutputArray dst
)
src:输入图像矩阵,其数据类型只能是CV_8U
lut:256个像素灰度值的查找表,单通道或者与src通道数相同
dst:输出图像矩阵,其尺寸与src相同,数据类型与lut相同
例:
LUT(gray, lutOne, out0)
//将输入灰度图像gray中的每个像素值替换为查找表lutOne中相应的值,并将结果存储在输出图像out0中
2、例子
#include <opencv2\opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int agrc, char** agrv)
{
//LUT查找表第一层
uchar lutFirst[256];
for (int i = 0; i<2