
155、去马赛克算法演进:双线性插值、色比恒定、方向插值与深度学习方法的对比与选型去年在调试一款车载环视模组时,遇到一个让人头疼的问题:夜间停车场场景下,白色车身上的文字边缘出现了密密麻麻的彩色锯齿,像被狗啃过一样。客户直接甩过来一张对比图,竞品方案干净利落。我盯着ISP输出的RAW图看了半天,问题出在去马赛克(Demosaic)环节——Bayer阵列的G通道插值把高频细节搞崩了。这玩意儿看似基础,但选错算法,后面3A调得再好也白搭。今天把这十几年踩过的坑掰开揉碎聊一聊。双线性插值:最朴素的“糊弄学”双线性插值是教科书里的Hello World。原理简单到令人发指:每个像素缺失的两个颜色通道,直接用周围同色像素的平均值填充。比如Bayer阵列中R位置的G值,取上下左右四个G像素的平均。实际调试中你会发现:这算法对平滑区域(天空、白墙)勉强能用,但一到纹理密集区就原形毕露。去年调一款安防枪机,监控仓库货架上的条形码,双线性插值出来的图像边缘全是摩尔纹,解码器直接罢工。原因在于它完全无视了图像的方向性——垂直边缘用水平方向的像素去平均,不糊才怪。代码里有个坑:很多人直接写四邻域平均,但Bayer阵列的G通道分布是棋盘格,R/B位置插值G时,邻域选择要区分“上下左右”还是“对角”。我见过有人把R位置的G插值写成取四个对角G的平均,结果图像出现网格状伪影,查了两天才发现是索引写反了。别这样写,老老实实按Bayer pattern分情况处理。色比恒定算法:老法师的“色彩守恒律”/