图像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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。