经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。 |
前面介绍的阈值比较方法中只有一个阈值,如果需要与多个阈值进行比较,就需要用到显示查找表(Look-Up-Table,LUT)。LUT查找表简单来说就是一个像素灰度值的映射表,它以像素灰度值作为索引,以灰度值映射后的数值作为表中的内容。例如我们有一个长度为5的存放字符的数组 P [ a , b , c , d , e ] P[a,b,c,d,e] P[a,b,c,d,e] ,LUT查找表就是通过这个数组将0映射成a,将1映射成b,依次类推,其映射关系为 P [ 0 ] = a P[0] = a P[0]=a 、 P [ 1 ] = b P[1] = b P[1]=b 。在OpenCV 4中提供了LUT()函数用于实现图像像素灰度值的LUT查找表功能,在代码清单3-20中给出了该函数的原型。
代码清单3-20 LUT()函数原型
1. void cv::LUT(InputArray src,
2. InputArray lut,
3. OutputArray dst
4. )
- src:输入图像矩阵,其数据类型只能是CV_8U。
- lut:256个像素灰度值的查找表,单通道或者与src通道数相同。
- dst:输出图像矩阵,其尺寸与src相同,数据类型与lut相同。
该函数的第一个输入参数要求的数据类型必须是CV_8U类型,但是可以是多通道的图像矩阵。第二个参数根据其参数说明可以知道输入量是一个1×256的矩阵,其中存放着每个像素灰度值映射后的数值,其形式如图3-17所示。如果第二个