openCV中的查找表
ref:http://blog.csdn.net/u010963435/article/details/78569714
首次见识LUT是在openCV官方文档:How to scan images, lookup tables and time measurement with OpenCV文章中通过一个图像色彩压缩的例子,对比LUT与其他三种图像遍历方法的时间耗费,表明LUT具有快速遍历图像的能力。
从数学上来看查找表是一个简单的一对一或多对一的函数,定义了如何将像素转换为新的值。从数据的组织关系上来看,查找表是一维或多维的数组,存储了不同输入值所对应的输出值。查找表在图像处理中主要用于像素的点运算,尤其是像素之间无位置相关性的操作中,如:图像色彩空间压缩、图像取反、图像分割,直方图均衡化等仅需要考虑像素值的应用。当需要对图像应用窗口运算等与像素位置相关的操作时,就不能使用查找表。(修改自http://www.voidcn.com/article/p-dypyzpta-bgz.html)
查找表使用赋值操作取代计算操作来节省时间耗费,仅需一次遍历就能完成操作任务。
1 | uchar table[256]; |
在Matlab、Numpy中有一种使用logical/bool 类型的矩阵作为索引,进行批量操作矩阵元素的方法,也可以认为是一种查找表。1
2
3
4%%@ matlab code
a = magic(5);
b = ones(5);
a(a>b) = 0; %将a>b矩阵元素赋值为0
更多参考:
http://blog.csdn.net/jameshater/article/details/50759650