本文主要是介绍ISP- LSC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
跟随B站食鱼者的视频学习的笔记。
LSC概述
LSC:lens shading correction,镜头阴影矫正。
Lens Shading一般被称为暗角或渐晕效应,可细分为Luma Shading(亮度均匀性,中间图)和Color Shading(色彩均匀性,左图)两种。右图是经过矫正后的效果。
Luma shading产生原因
Luma Shading是由镜头的光学特性引起的。对于整个镜头,可将其视为一个凸透镜。由于凸透镜中心的聚光能力远大于其边缘,从而导致Sensor中心的光线强度大于四周。此种现象也称之为边缘光照度衰减。
凸透镜中心聚光能力大于边缘的原因有2个,如下图左侧:
(1)中间光线(蓝色线)能全部通过透镜打到sensor上,而位于边缘的同等量的光线(绿色线)经过透镜折射后,有一部分已经损失掉了,只有剩下的部分能被sensor采集到。所以中间光线多亮度高,边缘光线少亮度减小;
(2)光线从透镜出来后,到sensor的这段距离,中间的光线距离短,所以衰减也少,边缘的光线距离长衰减多,所以中间亮边缘暗。
光照度衰减遵循的规律。θ是入射光线与主光轴的夹角,cos是临边比斜边。θ角度越大,衰减越多。
color shading产生原因
我们都知道白色光通过三菱镜折射后,会分成不同颜色。
而不同颜色的波长不同,所以白色光经透镜折射后,每个颜色打到sensor的位置也不同,导致颜色不均匀。
另外一方面则是Micro Lens(微透镜)的CRA(主光线入射角)与镜头的CRA不匹配也会导致Color Shading现象。
Luma shading矫正
宗旨就是有个目标值target,和当前值,让当前值 * 增益值达到目标值。
2种方法:
(1)网格矫正。(常用)
比如800万的图像,不能每个点都做记录,那样对硬件要求太高。
所以把图像分割成17*17的网格,记录每个小格子顶点,格子中间的点用插值法计算出来。
(2)半径矫正。
因为衰减符合的规律,中间亮四周暗,所以以中间为圆心,同一个半径下的衰减差不多,所以矫正所需的增益值也一致。
但半径法有个问题是,可能因为工艺的原因,如果最亮的区域不在图中间,而是偏离了中间,那么这个方法就不适用。
color shading矫正
与Luma shading原理一致。
只是color shading需要对RGB三个通道分别定义不同的增益值。
如果是Raw格式图片,就要对GRGB四个通道的不同颜色定义不同增益值。
这篇关于ISP- LSC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!