去马赛克的频域方法(可抗混叠)
摘要:本文要介绍的该方法完成了对彩色滤波阵列(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图像频谱如下图所示:
设,,可以看出,垂直方向上受到更少的串扰,的水平频率受到更少的串扰,因此,可以使用各向异性的滤波器从中提取和,使用各向同性的滤波器来提取。有了、和,也就不难得到了,进而、、即可重构出来。图2是提取各分量滤波器的频域响应(无需使用滤波器提取)
fig2. 提取各分量的滤波器的频域响应 (a) (b) (c) (d)
各向异性的滤波器、及各向同性的可采用利用训练集获得的最小二乘估计解(根据测试集中高分辨率RGB图像生成CFA图像,其色度通道标准值已知,使滤波恢复结果与标准值的误差平方和最小即可)。
下面给出算法去马赛克效果与常规方法的对比:
下面贴上论文给出的'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;
去马赛克的频域方法(可抗混叠)相关推荐
- 抗混叠滤波matlab实现,采用抗混叠滤波器的高性能、12位、500 MSPS宽带接收机
电路功能与优势 图1所示电路是基于超低噪声差分放大器驱动器ADA4960-1和12位.500 MSPS模数转换器AD9434的宽带接收机前端. 三阶巴特沃兹抗混叠滤波器基于放大器和ADC的性能和接口要 ...
- ADI实验室电路:带抗混叠滤波器的宽带接收机
http://www.elecfans.com/monijishu/diaoxie_lvbo/302055.html ADI实验室电路:带抗混叠滤波器的宽带接收机 器(1) 电路功能与优势 图1所示电 ...
- 心中无码,自然高清 | 联合去马赛克与超分辨率研究论文Pytorch复现
作者 | 知凡,个人公众号:林木蔚然读书会(ID:EspressoOcean),知乎ID:Uno Whoiam 本文授权转载自知乎 本文结构 简单扫盲 什么是去马赛克 什么是超分辨率 <Deep ...
- 图像去马赛克:双线性插值VS高质量线性插值
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...
- 【OpenCV 例程200篇】74. 图像的抗混叠
[OpenCV 例程200篇]74. 图像的抗混叠 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 2.2 图像的混叠 ...
- pulse 去马赛克软件_细致到毛孔头发 神还原的高清大图!AI去马赛克新算法
AI人工智能技术近年来大热,尤其是在图像识别领域,大家很期待的一个功能就是AI去马赛克.美国杜克大学的研究人员日前发明了一种新的PULSE算法,它可以将低分辨图片变成高清图片,细致到毛孔.头发都能神还 ...
- ISP(二) Demosiac 去马赛克 (CIP)
Demosiac是整个ISP imaging pipeline的核心算法,将Bayer pattern的图像转换成RGB. 去马赛克算法是用于从覆盖有颜色滤波器阵列(CFA)的图像传感器输出的不完整颜 ...
- Image Signal Processing(ISP)-第二章-Demosaic去马赛克以及BMP软件实现
Hello!ISP的基础知识分享第二章终于来了!最近精力都投入到了工作上,真是没时间写东西.但一位大佬私信我催更,着实让我感动.即使我的文字只有一个人看,那我也会写下去,而且泡做事怎么会半途而费呢? ...
- 抗混叠滤波器 - 原理
抗混叠滤波器 定义: 首先我们要明白,抗混叠滤波器不是指某一特定形式滤波器,而是一类总称.通常以低通为主.低通.带通都可以说是抗混叠滤波器. 工程测量中采样频率不可能无限高也不需要无限高,因为一般只关 ...
- 硬方案——从数据采样到滤波要求,一步一步教你设计“抗混叠滤波器”
[系列专栏]:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! <QT开发实战> <嵌入式通用开发实战> <嵌入式Linux开发实战> [从数据采样到滤波 ...
最新文章
- java 禁止使用多线程_Java多线程(四)-线程状态的转换 - Java 技术驿站-Java 技术驿站...
- 交通银行签约第四范式,建设全行级统一AI能力平台
- 一元多项式计算器 :加、减、乘运算【完整代码+运行截图+实验说明】
- 我的第一个.NET Core App Windows系统
- NSValue包装自定义结构体
- 快速幂、矩阵快速幂、快速乘法
- [FZYZOJ 1073] Password
- 找工作秘笈:“让别人知道你知道”
- python两数之和是多少_Python面试:两数之和
- Android Studio 创建/打开项目时一直处于Building“project name”Gradle project info 的解决...
- 论文中baseline是什么意思?
- linux下离线安装gcc详细教程
- 计算机科学技术编程基础教程
- Android 仿微博客户端 ViewPaper
- [Python]一个简单的QQ截图
- 知识共享协议促进微积分的大发展
- 利用路由器实现内网穿透
- 计算机高中竞赛自主招生,自主招生必备常识:高校认可的各类竞赛
- S/4 HANA标准表MARC增强字段
- Struts2的OGNL表达式语言
热门文章
- 墨画子卿第一章第9节:指教
- [问题已处理]- kubernetes报错error creating overlay mount to xx merged- no such file or directory
- 【22/04】Chrome 里的请求报错 “CAUTION: Provisional headers are shown“ 是什么意思?
- 网上流行护眼色的RGB值和颜色代码汇总
- 高中补习数学:导数与函数的综合问题(2019年测试题)
- day7 作业实现:四层字典嵌套循环
- 区块链开发金融交易平台
- 记录一下关于三角函数交换积分次序的一道题
- 自主上传图片投票工具、上传图片投票小程序、上传图片投票平台
- Java解析X509证书代码