OpenCV -- 什么是LUT

提到LUT,很多人可能都会觉得这是一个很专业很高深的词汇,LUT其实就是Lookup Table(颜色查找表)的缩写,简单点儿理解就是:通过LUT,你可以将一组RGB值输出为另一组RGB值,从而改变画面的曝光与色彩。用一个最简单的模型帮助大家理解就是:

如果我们规定:
当原始R值为0时,输出R值为5;
当原始R值为1时,输出R值为6;
当原始R值为2时,输出R值为8;
当原始R值为3时,输出R值为10;

一直到R值为255
当原始G值为0时,输出G值为10;
当原始G值为1时,输出G值为12;
当原始G值为2时,输出G值为13;
当原始G值为3时,输出G值为15;

一直到G值为255
当原始B值为0时,输出B值为0;
当原始B值为1时,输出B值为0;
当原始B值为2时,输出B值为1;
当原始B值为3时,输出B值为1;

一直到B值为255

那么,如果一个像素为RGB(1,2,3),那么它应用这个LUT之后的输出值就是RGB(6,13,1),以此类推,我们就可以把所有原始RGB值转化为输出RGB值。当然在实际的3D LUT转换中,算法要比这复杂很多。

如果你还是无法理解的话,你可以简单的认为LUT就是一个滤镜,利用LUT你可以快速的去渲染一张照片的曝光与色彩。LUT应用最多的是在视频领域,因为在视频拍摄中,为了保证足够的后期空间,通常会使用一种叫Log的格式来保存视频,这种格式的特点就是画面对比度很低,饱和度也很低,整体看起来灰蒙蒙的,

Log视频截图

但在影片实时预览的时候为了更好的观察画面效果,需要将视频由这种灰蒙蒙的状态转变为正常的色彩状态,这时候我们就可以借助标准LUT实现这种快速的转换:

利用LUT转换到标准色彩空间后的图像

因为LUT在转换色彩时就是一个色彩查找的过程,因此占用的系统资源极小,可以很高效的完成色彩风格的转变。当然对于大多数普通用户而言,用到Log视频的机会较少,因此也会较少的利用LUT来转换色彩空间,那么利用LUT来渲染图像色彩则可能是最为常见的场景。因为大多数LUT都是针对电影设计的,因此利用LUT渲染出来的照片会有较强的电影感:

视频截图

利用LUT渲染色彩后

当然,除了拥有滤镜一样的渲染画面色彩的功能外,LUT还能够跨平台的同步色彩效果。什么意思呢?比如你同时用达芬奇(一款视频编辑软件)和修图软件,但因为这两款软件的标定和代码不一样,因此你无法直接将修图软件的滤镜应用到达芬奇中,但是借助LUT这一个桥梁你就可以完成这样的工作。你可以先将修图软件滤镜的效果保存为LUT

将修图软件的调整导出为LUT

然后再在达芬奇中加载这个LUT,你就可以在达芬奇中获得和在修图软件中加载这个滤镜时一致的效果。

posted @ 2021-01-15 12:11  手磨咖啡  阅读(1579)  评论(0编辑  收藏  举报