089、锐化与边缘增强:非锐化掩模、自适应锐化与过冲抑制的实战经验
去年夏天,我接到一个车载环视项目的紧急支援。客户反馈夜间倒车时,后视摄像头画面在路灯边缘出现一圈刺眼的白边,像给灯柱套了个“光环”。更诡异的是,白边会随着车辆移动而闪烁,导致驾驶员误判距离。我第一反应是ISP的锐化模块出了问题——打开调试日志一看,锐化强度已经压到了最低档,但过冲依然存在。这就是典型的“锐化过冲”现象,在低照度、高对比度场景下尤其明显。
非锐化掩模:看似简单,实则暗坑无数
非锐化掩模(Unsharp Masking,USM)是所有锐化算法的老祖宗。它的原理很直白:原图减去高斯模糊后的低频图,得到高频细节,再按比例加回原图。公式写出来就一行:output = original + amount * (original - blurred)。但实际落地时,坑全藏在参数里。
第一个坑是高斯模糊半径的选择。半径太小,提取的高频包含大量噪声,锐化后画面像撒了盐;半径太大,边缘被过度平滑,锐化效果消失。我习惯的做法是:先根据图像分辨率估算一个基础半径。1080P图像,半径取1.5到2.0像素;4K图像,半径取2.5到3.5像素。但这只是起点,最终值必须结合模组的MTF曲线来调。如果镜头本身在奈奎斯特频率附近已经衰减严重,再加大半径只会放大振铃。
第二个坑是增益系数amount的线性问题。很多工程师喜欢把amount设成一个固定值,比如1.5。但实际场景中,暗部区域的噪声水平远高于亮部,同样的增益系数在暗部会放大噪声,在亮部却可能不够。我在一个安防项目中吃过这个亏:夜晚监
订阅专栏 解锁全文

1045

被折叠的 条评论
为什么被折叠?



