摘要:本文要介绍的该方法完成了对彩色滤波阵列(color filter array,CFA)采样高分辨率RGB图像的过程进行了数学建模,通过对公式重组分离出了一个亮度通道和两个色差通道,通过频域分析发现两色差通道被搬移到了特定高频位置,其中一个色差通道的频域表达具有各向异性,即水平/垂直方向与亮度通道的串扰程度不同。因此可使用各向异性的滤波器进行该色差通道的恢复,对另一个色差通道使用各向同性滤波器进行恢复,再结合CFA图像获得亮度通道图像,这样就可以重构出高分辨率RGB图像了。

注:本文源于对论文“Least-squares luma-chroma demultiplexing algorithm for Bayer demosaicking”及论文“Frequency-Domain Methods for Demosaicking of Bayer-Sampled Color Images”的解读。论文及程序下载地址为:https://download.csdn.net/download/u014230360/12527273。“Least-squares luma-chroma demultiplexing algorithm for Bayer demosaicking”忘记包含在内,读者可通过Sci-Hub自行下载。

CFA图像中R、G、B通道的采样函数分别为:

由此,CFA信号可表示为:

即:

其中:

反过来有:

因此,求出即可重构出

做傅里叶变换,有:

对于,显然两个色度通道值为0。一般来说,色度通道具有更低的能量,占据更低的带宽。典型CFA图像频谱如下图所示:

fig1. 典型CFA频谱

,,可以看出,垂直方向上受到更少的串扰,的水平频率受到更少的串扰,因此,可以使用各向异性的滤波器从中提取,使用各向同性的滤波器来提取。有了也就不难得到了,进而即可重构出来。图2是提取各分量滤波器的频域响应(无需使用滤波器提取)

fig2. 提取各分量的滤波器的频域响应  (a) (b) (c) (d)

各向异性的滤波器及各向同性的可采用利用训练集获得的最小二乘估计解(根据测试集中高分辨率RGB图像生成CFA图像,其色度通道标准值已知,使滤波恢复结果与标准值的误差平方和最小即可)。

下面给出算法去马赛克效果与常规方法的对比:

fig3. 原图

fig4. 常规去马赛克结果(matlab自带函数实现)

fig5. 频域去马赛克结果

下面贴上论文给出的'GRBG'格式bayer图像去马赛克源码(其他格式的可通过变量代换完成,含有滤波器包的完整源码可从我上传的资源中获得,下载地址:https://download.csdn.net/download/u014230360/12527273):

% Demosaicking of Noisy Bayer-Sampled Color Images with Least-Squares
% Luma-Chroma Demultiplexing and Noise Level Estimation
%
% IEEE Trans. Image Processing (submitted)
% This software is for provided for non-commercial and research purposes only
% Copyright Eric Dubois (edubois@site.uottawa.ca), University of Ottawa 2011
%
%       [RGB] = demos_LSLCD_NE(CFA, fpkg, sigma, method)
%       CFA(:,:)   input Bayer CFA mosaicked image, double according to the
%       pattern       G R
%                     B G
%       fpkg       path of the filter package that contains the follwing
%                  filter: h1, h2a, h2b, hL, hG1, hG2
%       sigma      added noise (sigma_A) or estimated noise (sigma_E)
%       method     1: h_LN, 2: BM3D
%       RGB(:,:,3) output RGB image, double
%       BM3D can be downloaded: http://www.cs.tut.fi/~foi/GCF-BM3D/function [RGB] = demos_LSLCD_NE(CFA, fpkg, sigma, method)% Load the filter package
load(fpkg);% Use the filters to demosaic the CFA image
S = size(CFA); N1 = S(1); N2 = S(2);
yc = 0:N1-1; xc = 0:N2-1;
[XC,YC] = meshgrid(xc,yc);% % Filter the input image with the two Gaussian filters to get energy terms
% eX = imfilter(CFA,hG1,'replicate','same').^2;
% eY = imfilter(CFA,hG2,'replicate','same').^2;
% % Average energy with moving average filter
% NMA=5; h_MA = ones(NMA,NMA)/(NMA^2);
% eX = imfilter(eX,h_MA,'replicate','same');
% eY = imfilter(eY,h_MA,'replicate','same');
% % Compute weighting coefficients
% w = eY./(eX+eY);
w=0.5*ones(N1,N2);
% Extract chrominance in corners using h1
C1mhat = imfilter(CFA,h1,'replicate','same');
% Extract chrominance on sides at f_y = 0
C2mahat = imfilter(CFA,h2a,'replicate','same');
% Extract chrominance on sides at f_x = 0
C2mbhat = imfilter(CFA,h2b,'replicate','same');% Estimate the C2 component
C2hat = (w.*C2mahat.*(-1).^(XC) - (1-w).*C2mbhat.*(-1).^(YC));
% Estimate the C1 component
C1hat = C1mhat.*(-1).^(XC+YC);
% Estimate the Luma component
Lhatn = CFA - C1mhat - C2hat.*((-1).^XC - (-1).^YC);if method == 1if sigma<=0Lhat = Lhatn;else                Lhat = imfilter(Lhatn,hL,'replicate','same');end
elseif method == 2if sigma<=0Lhat = Lhatn;else                Lhat=BM3D(255*Lhatn,sigma)/255;end
elsedisplay('error');
end% Reconstruct the RGB image
RGB(:,:,1) = Lhat - C1hat - 2*C2hat;
RGB(:,:,2) = Lhat + C1hat;
RGB(:,:,3) = Lhat - C1hat + 2*C2hat;
RGB(RGB>1)=1;
RGB(RGB<0)=0;

去马赛克的频域方法(可抗混叠)相关推荐

  1. 抗混叠滤波matlab实现,采用抗混叠滤波器的高性能、12位、500 MSPS宽带接收机

    电路功能与优势 图1所示电路是基于超低噪声差分放大器驱动器ADA4960-1和12位.500 MSPS模数转换器AD9434的宽带接收机前端. 三阶巴特沃兹抗混叠滤波器基于放大器和ADC的性能和接口要 ...

  2. ADI实验室电路:带抗混叠滤波器的宽带接收机

    http://www.elecfans.com/monijishu/diaoxie_lvbo/302055.html ADI实验室电路:带抗混叠滤波器的宽带接收机 器(1) 电路功能与优势 图1所示电 ...

  3. 心中无码,自然高清 | 联合去马赛克与超分辨率研究论文Pytorch复现

    作者 | 知凡,个人公众号:林木蔚然读书会(ID:EspressoOcean),知乎ID:Uno Whoiam 本文授权转载自知乎 本文结构 简单扫盲 什么是去马赛克 什么是超分辨率 <Deep ...

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

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...

  5. 【OpenCV 例程200篇】74. 图像的抗混叠

    [OpenCV 例程200篇]74. 图像的抗混叠 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 2.2 图像的混叠 ...

  6. pulse 去马赛克软件_细致到毛孔头发 神还原的高清大图!AI去马赛克新算法

    AI人工智能技术近年来大热,尤其是在图像识别领域,大家很期待的一个功能就是AI去马赛克.美国杜克大学的研究人员日前发明了一种新的PULSE算法,它可以将低分辨图片变成高清图片,细致到毛孔.头发都能神还 ...

  7. ISP(二) Demosiac 去马赛克 (CIP)

    Demosiac是整个ISP imaging pipeline的核心算法,将Bayer pattern的图像转换成RGB. 去马赛克算法是用于从覆盖有颜色滤波器阵列(CFA)的图像传感器输出的不完整颜 ...

  8. Image Signal Processing(ISP)-第二章-Demosaic去马赛克以及BMP软件实现

    Hello!ISP的基础知识分享第二章终于来了!最近精力都投入到了工作上,真是没时间写东西.但一位大佬私信我催更,着实让我感动.即使我的文字只有一个人看,那我也会写下去,而且泡做事怎么会半途而费呢? ...

  9. 抗混叠滤波器 - 原理

    抗混叠滤波器 定义: 首先我们要明白,抗混叠滤波器不是指某一特定形式滤波器,而是一类总称.通常以低通为主.低通.带通都可以说是抗混叠滤波器. 工程测量中采样频率不可能无限高也不需要无限高,因为一般只关 ...

  10. 硬方案——从数据采样到滤波要求,一步一步教你设计“抗混叠滤波器”

    [系列专栏]:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! <QT开发实战> <嵌入式通用开发实战> <嵌入式Linux开发实战> [从数据采样到滤波 ...

最新文章

  1. java 禁止使用多线程_Java多线程(四)-线程状态的转换 - Java 技术驿站-Java 技术驿站...
  2. 交通银行签约第四范式,建设全行级统一AI能力平台
  3. 一元多项式计算器 :加、减、乘运算【完整代码+运行截图+实验说明】
  4. 我的第一个.NET Core App Windows系统
  5. NSValue包装自定义结构体
  6. 快速幂、矩阵快速幂、快速乘法
  7. [FZYZOJ 1073] Password
  8. 找工作秘笈:“让别人知道你知道”
  9. python两数之和是多少_Python面试:两数之和
  10. Android Studio 创建/打开项目时一直处于Building“project name”Gradle project info 的解决...
  11. 论文中baseline是什么意思?
  12. linux下离线安装gcc详细教程
  13. 计算机科学技术编程基础教程
  14. Android 仿微博客户端 ViewPaper
  15. [Python]一个简单的QQ截图
  16. 知识共享协议促进微积分的大发展
  17. 利用路由器实现内网穿透
  18. 计算机高中竞赛自主招生,自主招生必备常识:高校认可的各类竞赛
  19. S/4 HANA标准表MARC增强字段
  20. Struts2的OGNL表达式语言

热门文章

  1. 墨画子卿第一章第9节:指教
  2. [问题已处理]- kubernetes报错error creating overlay mount to xx merged- no such file or directory
  3. 【22/04】Chrome 里的请求报错 “CAUTION: Provisional headers are shown“ 是什么意思?
  4. 网上流行护眼色的RGB值和颜色代码汇总
  5. 高中补习数学:导数与函数的综合问题(2019年测试题)
  6. day7 作业实现:四层字典嵌套循环
  7. 区块链开发金融交易平台
  8. 记录一下关于三角函数交换积分次序的一道题
  9. 自主上传图片投票工具、上传图片投票小程序、上传图片投票平台
  10. Java解析X509证书代码