资源简介

论文中(Raw域CFA模式下的去噪)MATLAB code,在Raw域中进行去噪

资源截图

代码片段和文件信息

function dnRaw=CFAdenoise(nRaw Nsigma pattern)

patterns = cell(22);
if( strcmpi( pattern ‘grbg‘ ) )
 patterns{1}{1} = ‘grbg‘; % grgr
 patterns{1}{2} = ‘rggb‘; % bgbg
 patterns{2}{1} = ‘bggr‘; % grgr
 patterns{2}{2} = ‘gbrg‘; % bgbg
 
elseif( strcmpi( pattern ‘gbrg‘ ) )
 patterns{1}{1} = ‘gbrg‘; % gbgb
 patterns{1}{2} = ‘bggr‘; % rgrg
 patterns{2}{1} = ‘rggb‘; % gbgb
 patterns{2}{2} = ‘grbg‘; % rgrg

elseif( strcmpi( pattern ‘rggb‘ ) )
 patterns{1}{1} = ‘rggb‘; % rgrg
 patterns{1}{2} = ‘grbg‘; % gbgb
 patterns{2}{1} = ‘gbrg‘; % rgrg
 patterns{2}{2} = ‘bggr‘; % gbgb

elseif( strcmpi( pattern ‘bggr‘ ) )
 patterns{1}{1} = ‘bggr‘; % bgbg
 patterns{1}{2} = ‘gbrg‘; % grgr
 patterns{2}{1} = ‘grbg‘; % bgbg
 patterns{2}{2} = ‘rggb‘; % grgr

else
 dnRaw = [];
 return
end

s = size(nRaw);
val = zeros(s);
num = zeros(s);

for row=1:2
 for col=1:2
  nr = nRaw(row:s(1) col:s(2));
  nr = nr(1:floor(size(nr1)/2)*2 1:floor(size(nr2)/2)*2);
  dn = PCABM3DsubtractCDnoise(nr Nsigma(1) Nsigma(2) Nsigma(3) patterns{row}{col} );
  
  s1 = row+size(dn1)-1;
  s2 = col+size(dn2)-1;
  val(row:s1 col:s2) = val(row:s1 col:s2) + dn;
  num(row:s1 col:s2) = num(row:s1 col:s2) + ones(size(dn));
 end
end

dnRaw = val ./ num;

end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1237  2015-05-29 16:16  matlabcode\CFAdenoise.m
     文件        1109  2015-05-29 16:16  matlabcode\demoCFADenoising.m
     文件      547014  2015-05-29 16:16  matlabcode\lena.png
     文件         390  2015-05-29 16:16  matlabcode\Matcolorconvert.m
     文件        1430  2015-05-29 16:16  matlabcode\mosaic_bayer.m
     文件        3327  2015-05-29 16:16  matlabcode\PCABM3DsubtractCDnoise.m
     文件        3932  2015-05-29 16:15  matlabcode\README.txt
     文件         132  2015-05-29 16:16  matlabcode\rgb2bayerraw.m
     文件         180  2015-05-29 16:16  matlabcode\wholeBM3D.m

评论

共有 条评论