GRADIENT BASED THRESHOLD FREE COLOR FILTER ARRAY INTERPOLATION

news2024/11/16 18:35:38

ABSTRACT

彩色滤波器阵列(CFA)插值是单传感器数字相机图像处理管道的组成部分。多年来,许多CFA算法被提出以提高图像质量。其中一个算法就是非常成功的定向线性最小均方误差估计(Directional Linear Minimum Mean-Square Error Estimation, DLMMSE)方法。我们对该算法做了一些观察,并提出了一种新的方法来解决这些问题。本文提出的方法产生了视觉上令人满意的结果,在PSNR方面优于最近一篇调查论文中包含的所有CFA插值算法。

1. INTRODUCTION

大多数数码相机使用单一传感器阵列与彩色滤光片来捕捉图像数据。颜色滤波器阵列的布局决定了在每个像素位置记录哪个颜色通道。为了获得完整的彩色图像,需要从单通道拼接图像中插值缺失的彩色通道信息。这个过程被称为颜色滤镜阵列(CFA)插值或马赛克。虽然有许多不同的CFA模式,但最常见的是拜耳CFA[1],如图1所示。

简单的插值技术,如最近邻插值或双线性插值可以应用于马赛克问题。然而,忽略边缘结构和通道间相关性的解决方案会导致颜色伪影和模糊输出。早期提出了一种著名的图像马赛克方法,即在初始绿通道插值[2]中使用红色和蓝色像素的二阶导数。这个想法成为后来许多算法的基本组成部分。[3]的作者提出利用颜色差异的方差来决定插值的方向。[4]中的方向滤波和后验决策(DFPD)算法提出在水平方向和垂直方向上进行插值,然后根据每个方向上的梯度和进行硬方向决策。

DLMMSE算法[5]首先计算水平和垂直方向的(G-R)和(G-B)色差。然后,这些计算被视为实际色差的噪声估计,并使用线性最小均方误差框架进行最优组合。绿色通道插值完成后,利用原色差信号和简单的双线性插值填充缺失的红色和蓝色通道像素。[6]作者在DLMMSE算法的基础上,提出了采用方向各向异性尺度自适应滤波进一步提高图像拼接性能。

在本文中,我们提出了一种新的马赛克方法,解决了我们在DLMMSE算法中观察到的一些局限性。首先,由于其方向性,DLMMSE算法只使用目标像素的相邻像素(与目标像素共用一列或一行的像素)的一个子集来确定每个方向对色差计算的贡献。虽然该解决方案在其自己的领域是最优的,但未考虑的邻居像素可能提供额外的信息,可以改善色差估计。这就是为什么我们想要在决策过程中包含一个给定的局部窗口内的每个相邻像素。然而,由于每个像素上可用的色差不是(G-R)就是(G-B),我们不能像DLMMSE方法那样应用方差度量。出于这个原因,我们使用颜色差异的梯度来获得每个方向的权重。

其次,DLMMSE方法与其他方向方法一样,在水平方向和垂直方向上都有作用。然而,对于一个给定的方向,对于落在目标像素的相反两侧的像素,特别是靠近边缘或在纹理区域的像素,条件可能是不同的。这就是为什么我们要把南北和东西两个方向分开来考虑。我们结合了各个方向的估计,从而消除了设置阈值的需要,而不是做出艰难的方向决定。

本文的其余部分组织如下。第2节详细描述了所提出的demosaicing方法,第3节给出了客观和主观的比较结果,第4节给出了简要的讨论和结论。

2. ALGORITHM OVERVIEW

拜耳CFA模式中绿色通道样本是红色和蓝色通道样本的两倍。这就是为什么绿色通道不受混叠的影响,这使得它成为马赛克过程的起点的自然选择。提出的算法首先在一次运行中插值绿色通道,然后使用其结果填充红色和蓝色通道。

2.1. Green Channel Interpolation

算法的第一步是将Hamilton和Adams的[2]插值公式应用于垂直和水平方向的所有像素。对于红色像素位置,水平和垂直的绿色通道估计计算如下:

同样,对于垂直相邻为红色的绿色像素,垂直红色通道估计为:

对于绿色像素的水平红色通道,

蓝色像素的估计也以同样的方式计算,只需在上面的公式中用B替换R即可。下一步是使用原始和定向估计的像素值找到水平和垂直色差估计。

同样,水平和垂直(G-B)差异估计的计算也是类似的。在这一步结束时,我们有了两个差分图,一个用于水平估计,另一个用于垂直估计,如图2所示。

然后结合方向色差,对目标像素进行最终的差值估计:

可以修改向量f,使接近目标像素的颜色差异具有更大的权重。每个方向(wN,wS,wE,wW)的权重是通过在一个局部窗口上向该方向添加色差梯度来计算的。对于5 * 5的窗口大小:

其中梯度定义为:

最后,将估计的色差与可用的(红色或蓝色)目标像素相加,计算目标绿色像素值:

2.2. Red and Blue Channel Interpolation

蓝色位置的红色像素值和红色位置的蓝色像素值使用[6]中提出的以下过滤器进行插值:

其中⊗表示元素的矩阵乘法,然后是元素的求和。

对于位于绿色位置的红色和蓝色像素,我们使用双线性插值在最近的四个邻居上。绿色像素的垂直相邻点要么是红色像素,要么是蓝色像素。对于红色像素的情况,将绿色像素位置的红色和蓝色像素值插值如下:

插值公式与蓝色垂直邻居的情况相似。在这一点上,我们为每个通道插值缺失的像素,并重建我们的彩色图像。

3. EXPERIMENTAL RESULTS

在最近的一篇调查论文[7]中使用的柯达测试集的前12张图像上测试了所提出的算法。这份调查报告比较了11种最先进的方法,其中我们报告了4种表现最好的方法。这些方法分别是局部多项式逼近(Local Polynomial Approximation, LPA)[6]、定向线性最小均方误差估计(Directional Linear Minimum Mean Square-Error Estimation, DLMMSE)[5]、色差方差(Variance of color difference, VCD)[3]和边缘加权改进逐次逼近(逐次逼近,SA)[8]。PSNR比较结果如表1所示。该算法总体平均PSNR最好,比最近邻法(LPA)和DLMMSE法分别高出0.14 dB和0.64 dB。图3为灯塔图像中常用的栅栏区域进行主观质量比较。

4. CONCLUSION

本文提出了一种易于实现的、非迭代的、基于梯度的马赛克算法。实验结果表明,该算法在客观PSNR比较方面优于其他常用的马赛克算法。在绿色通道插补阶段采用自适应尺寸滤波器代替固定滤波器,可以提高算法的性能。引入一个温和的后期处理步骤也可能改善它的结果。然而,额外的计算成本和质量权衡总是与后期处理步骤有关。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1077211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript使用throw new Error自定义错误信息

有些时候 我们自己写了一个组件 但是怕同事不了解我们的组件 传入了错误的类型或者数据 导致逻辑报错 同事还会觉得我们的组件写的莫名其妙 我们就可以自己写判断 例如我这个代码 我判断 如果同事传入的 type 为 false 或者 在我自己的集合中找不到 外面传入的type类型 我就直…

【G-LAB】带你掌握网络交换机上各种接口知识

点击上方关注我们 交换机是一种用于电(光)信号转发的网络设备。可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。交换机是使用非常广泛的网络设备。多台网络设备…

十五、异常(7)

本章概要 其他可选方式 历史观点把异常传递给控制台把“检查的异常”转换为“不检查的异常” 异常指南 其他可选方式 异常处理系统就像一个活门(trap door),使你能放弃程序的正常执行序列。当“异常情形”发生的时候,正常的执行…

【Redis】Hash 哈希内部编码方式

Hash 哈希内部编码方式 哈希的内部编码有两种: ziplist(压缩列表):当哈希类型元素个数⼩于hash-max-ziplist-entries配置(默认512个)、同时所有值都⼩于hash-max-ziplist-value配置(默认64字节…

软考高级架构师下篇-18

目录 1. 引言2. 传统数据处理系统的问题1.传统数据库的数据过载问题2.大数据的特点3.大数据利用过程4.大数据处理系统架构分析3.典型的大数据架构1. Lambda架构2.Kappa架构3. Lambda架构与Kappa架构的对比4.大数据架构的实践1.大规模视频网络2.广告平台3.公司智能决策大数据系统…

微信小程序 在bindscroll事件中监听scroll-view滚动到底

scroll-view其实提供了一个 bindscrolltolower 事件 这个事件的作用是直接监听scroll-view滚动到底部 但是 总有不太一样的情况 公司的项目 scroll-view 内部 最下面有一个 类名叫 bottombj 的元素 我希望 滚动到这个 bottombj 上面的时候就开始加载滚动分页 简单说 bottombj这…

LeetCode【84】柱状图中的最大矩形

题目: 思路: https://blog.csdn.net/qq_28468707/article/details/103682528 https://www.jianshu.com/p/2b9a36a548fa 清晰 代码: public int largestRectangleArea(int[] heights) {int[] heightadd new int[heights.length 1];for (i…

电机控制——PID基础

本文来讲一下PID调节器。 在实际的系统中,因为摩擦、阻力等外界因素的存在,系统的实际输出与我们期望的输出通常存在误差,PID的目的就是调节系统的实际输出,使其更快更稳地贴近期望输出。 PID模块被周期性的调用,模块…

电脑资源:分享9个免费下载音乐网站,值得收藏!

目录 1、中国原创音乐基地 2、soundstripe 3、My Free MP3 4、钟铜 5、cctrax 国外流行音乐专辑 6、歌曲宝 7、搜无损网 8、音乐搜索器 9、Listen 1 今天给大家分享9个免费下载音乐网站,值得收藏! 1、中国原创音乐基地 一个国内原创音乐基地网站&…

中国人民大学与加拿大女王大学金融硕士——山有顶峰,海有彼岸,一切终有回甘

每个人都有自己独特的天赋和潜力,只需要用心去发掘和发挥。相信自己,努力奋斗,成功才会属于你。对于工作多年的在职人士来说,瓶颈期是再正常不过了,但是想要打破瓶颈期,就需要不断学习,提升自己…

带你一张图了解八种流行的网络协议

网络协议是在网络中两台计算机之间传输数据的标准方法。 本文将通过一张图详解 8 种流行的网络协议。 1、HTTP(超文本传输协议),HTTP 是一种用于获取 HTML 文档等资源的协议。它是 Web 上任何数据交换的基础,是一种客户端 - 服务…

拓扑几何学

目录 一,欧拉定理 1,平面图论图 2,单连通多面体 3,一般多面体 一,欧拉定理 1,平面图论图 在一个联通无向图中,点数-边数面数 1 如: 7-126 1 如果把最外面的五边形外面也算…

狂飙10年后,电动两轮车终究要回归理性

文|新熔财经 作者|一城 我国电动两轮车保有量超3.7亿辆,并超越汽车保有量成为中国第一大交通工具,电动两轮车“国民级产品”当之无愧。 但是,历经近十年的高速发展,行业却面临一些问题: 渠道…

在对接自有账户体系时,FinClip 怎么做的?

以下文章来源于 FinClip (凡泰极客) 作者:王字 Wannz FinClip 是 Authing 的合作伙伴之一,致力于帮助企业打造更高效的一站式数字内容管理平台,旨在降低内容与渠道所形成的内容矩阵管理成本。前不久我与售前同事聊天,他们反馈说很…

在线制作课程表

失业在家,开启一天一个应用的创作节奏,最近学了uniapp,特别想做点啥,正好家里小孩子要打印课程表,而且课程表还有调课的需求,就寻思做一个方便大家,到目前位置服务完全免费的,新鲜上…

MySQL数据库基本操作-DQL-排序查询

介绍 如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 order by 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。 语法 select 字段名1,字段名2,…… from 表名 order by 字段名1 [asc|desc]&#xf…

腾讯云新用户专享便宜云服务器有哪些?如何购买?

在云计算市场竞争激烈的今天,各大云服务提供商为了吸引更多用户,经常推出各种优惠活动。腾讯云作为国内领先的云计算服务提供商之一,也不例外。本文将为大家介绍腾讯云新用户专享的便宜云服务器,以及如何购买。 腾讯云新用户专享便…

3.1 使用点对点信道的数据链路层

思维导图: 前言: **第3章 数据链路层笔记** --- **概述**: - 数据链路层在计算机网络中是较低的层级。 - 主要有两种信道:点对点信道与广播信道。 - 局域网(LAN)位于数据链路层。 --- **1. 信道种类**…

C++ stack和queue模拟实现

目录 stack习题练习逆波兰表达式求值基本计算器 stack模拟实现queuequeue模拟实现deque了解priority_queuepriority_queue模拟实现仿函数 stack stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提…

阶段六-Day02-Maven

一、学习Maven 使用Maven创建Web项目,并部署到服务器。 二、Maven介绍及加载原理 1. 介绍 Maven是使用Java语言编写的基于项目对象模型(POM)的项目管理工具。开发者可以通过一小段描述信息来管理项目的构建、报告和文档。 使用Maven可以…