opencv中LUT函数使用

有时候我们需要对某图像中的像素值进行替换,例如对于8位单通道的灰度图像,共有256个灰度级0-255,如果需要将其中的

0-9范围内的像素值为0;

10-19范围内的像素值为10;

20-29范围内的像素值为20等等

可以使用公式 newImage=originalImage/10*10;具体为所以0-255的256中灰度级被分成了0-25共26种灰度级。


因为图像的矩阵维度很高,如果每个像素都使用公式进行计算的话,那么代价太大,因此可以建立一张表格,将对应的灰度级进行映射好,然后具体操作的时候,只需要在事先建好的表格中进行查找,然后赋值就好了,这样能大量减少程序的运行时间。

LUT函数(look up table)即为查表函数,

void LUT(InputArray src, InputArray lut, OutputArray dst);

InputArray src:输入图像

OutputArray dst:输出图像

InputArray lut:查找表

例如:我们想将一张图片灰度为0-100的像素的灰度变成0,101-200的变成100,201-255的变成255。我们就可已建立如下的一张表格;





以上就是结果图,左边的是原图,右边的是使用LUT函数处理后的图。

猜你喜欢

转载自blog.csdn.net/mrahut/article/details/80167440