图像dct变换编码matlab,dct算法MATLAB代码

  图像dct变换编码matlab,dct算法MATLAB代码

  1.针对普通相机拍摄图像中的区域曝光问题,提出了一种改进的基于离散余弦变换的多曝光图像融合算法。将同一场景的几幅不同曝光的图像分块,对每个块进行离散余弦变换。对从相应位置提取的低频系数进行平均加权,得到图像近似部分的融合分量;对于高频系数,基于区域标准差确定权重系数,根据权重系数得到细节的融合分量。最后通过离散余弦逆变换得到质量较好的多曝光融合图像。仿真实验表明,当低频系数为25%,高频系数为75%时,显示的图像细节更加丰富。

  第2部分代码函数[imf]=mrdctf(im1,im2,J)

  基于多分辨率1D DCT的图像融合

  %开发人员:VPS Naidu,MSDF实验室

  % input: im1 im2要融合的图像

  % J分解层数

  %输出:imf融合图像

  imfr=mrdctif(im1,im2,J);

  imfc=mrdctif(im1 ,im2 ,J);

  IMF=0.5 *(imfr imfc);

  function[imf]=mrdctif(im1,im2,J)

  基于DCT的多分辨率图像融合

  [m,n]=大小(im1);

  x1=c2dt1d(im1,m,n);

  x2=c2dt1d(im2,m,n);

  对于i=1:J

  x1 { I }=mrdct(x1);

  X2 { I }=mrdct(x2);

  x1=X1{i}。l;

  x2=X2{i}。l;

  目标

  % fusion从这里开始

  Xf。L=0.5*(X1{J}。X2{J}。l);

  对于i=J:-1:1

  D=(abs(X1{i})。(X2{i})。h))

  Xf。H=D.*X1{i}。H (~D)。*X2{i}。h;

  Xf。l=imrdct(Xf);

  目标

  imf=c1d2d(Xf。l,m,n);

  函数[R]=c2dt1d(R,m,n)

  从2D阵列到1D向量的转换百分比

  R(2:2:end,)=R(2:2:end,end:-1:1);

  R=reshape(R ,1,m * n);

  函数[R]=c1d2d(R,m,n)

  从1D向量到2D阵列的转换百分比

  R=shape(R,n,m);

  R(2:2:end,)=R(2:2:end,end:-1:1);

  函数[X]=mrdct(x)

  %多分辨率分析

  n=长度(x);

  Y=dct(x,n);

  X.l=IDCT(Y(1:n/2));%低频

  X.h=Y(n/2 ^ 1:n);%低频

  函数[x]=imrdct(X)

  %逆多分辨率分析

  XL=DCT(X . L);

  X=[XL X . H];

  x=IDCT(x);3模拟结果

  编辑

  4参考文献[1],马,刘英.基于DCT变换的多曝光图像融合方法[J].Xi邮电大学学报,2016,21(6):4。

  博主:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等领域的Matlab仿真。相关的matlab代码问题可以私信交流。有些理论引用自网络文献。如有侵权,联系博主删除。

  原创作品来自matlab研究助手,

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: