飞道的博客

图像去马赛克:双线性插值VS高质量线性插值

465人阅读  评论(0)

   
  1. 点击上方“小白学视觉”,选择加 "星标"或“置顶”
  2. 重磅干货,第一时间送达
  3. 推荐阅读
  4. 42个pycharm使用技巧,瞬间从黑铁变王者Google C++项目编程风格指南 (中文版) 分享

本期我们将介绍两种图像处理算法,该算法能够去除CCD相机捕获的图像中由于Bayer滤波器引起的马赛克问题。在图1中,我们根据Bayer滤波器显示了bgrg像素排列。如图所示,对于红色通道和蓝色通道,我们仅保留25%的像素。对于绿色通道,保留50%的像素。为了去除图像马赛克,我们将对丢失的像素进行插值。我们使用两种不同的算法对Beyer图像进行去马赛克处理。

图1:基于拜耳滤波器的像素排列

01. 双线性插值

双线性插值是我们用来对Bayer图像进行去马赛克的最简单方法。该方法背后的思想是,由于遗漏像素的值很可能与其现有相邻像素的值具有相似性,因此我们可以通过取其相邻像素的平均值来内插每个通道中的遗漏值。换句话说,我们从红色通道开始,对于任何遗漏的值,我们查看其相邻像素,如果它们包含一个值,则取其平均值,并将计算出的平均值分配给遗漏的像素。

图2:双线性插值算法

如图2所示,我们可以使用以下等式对Gx,Bx和Rx的值进行插值:

02. 高质量线性插值

该方法由Malvar等人提出[1]。高质量插值背后的想法是,要对每个通道中的丢失像素进行插值,仅使用位于同一通道上的相邻像素可能并不准确。换句话说,为了内插图2中的Gx等绿色像素,我们需要使用其相邻绿色像素的值以及现有通道的值。例如,如果在Gx的位置有一个红色值,则必须使用该值以及相邻的可用绿色值。他们称其为方法梯度校正插值。

最后,他们提出了8种不同的5 * 5滤镜,如图3所示。我们需要将滤镜卷积为要插值的像素。

图3:通过[1]进行的高质量线性插值的滤波器系数

例如,如果我们要估计绿色像素的值,而我们在该位置具有红色像素的值,则需要使用第一个过滤器。我们需要将滤波器中给定的权重乘以给定通道的值,然后将其平均值除以8,因为每个滤波器的权重之和为8。

参考文献

[1] Malvar, Henrique S., Li-wei He, and Ross Cutler. “High-quality linear interpolation for demosaicing of Bayer-patterned color images.” 2004 IEEE International Conference on Acoustics, Speech, and Signal Processing. Vol. 3. IEEE, 2004.

代码链接:https://github.com/aliprf/CV-Demosaicing

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目31讲

在「小白学视觉」公众号后台回复:Python视觉实战项目31讲即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

下载4:leetcode算法开源书

在「小白学视觉」公众号后台回复:leetcode即可下载。每题都 runtime beats 100% 的开源好书,你值得拥有!


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


转载:https://blog.csdn.net/qq_42722197/article/details/112598391
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场