⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mydwt2.m

📁 在MATLAB中编写实现图像的不同级别小波分解算法;2选择合适的小波基;3对经典的几幅黑白和彩色图像进行DWT变换;4实现零树、基于塔式网格矢量量化、基于LBG算法、基于标量量化等小波变换编码;5得到
💻 M
字号:
function [cA,cH,cV,cD,cM]=mydwt2(mypic_RGB,wavename)
% 此函数是利用MATLAB工具箱提供的一维离散小波变换函数dwt()对传递进来的图像矩阵mypic_RGB
% 进行相应的小波类型分解处理,其中参数wavename是小波类型。它借助于使用了指定的小波基函
% 数'wavename' 的dwt()首先对图像矩阵进行行分解,而后进行列分解。生成了近似分量cA,水平
% 细节分量cH,垂直细节分量cV,对角细节分量cD和中间分量cM

% 变量初始化
cA=[];cH=[];cV=[];cD=[];cM=[];cAm=[];cDm=[];

% 进行逐行行分解变换
% cA1,cD1为临时近似,细节分量,把两分量进行列数扩展合成为中间分量矩阵以便输出
x=size(mypic_RGB);
for i=1:x(1)
    [cA1,cD1]=dwt(mypic_RGB(i,:),wavename);
    cAm=[cAm;cA1];cDm=[cDm;cD1];
end
cM=[cAm,cDm];

% 对两临时分量进行逐列列分解变换,最后生成近似分量cA,水平细节分量cH,垂直细节分量cV,对
% 角细节分量cD
cAm=cAm';cDm=cDm';
x=size(cAm);
for i=1:x(1)
    [cA1,cD1]=dwt(cAm(i,:),wavename);
    cA=[cA;cA1];cV=[cV;cD1];
end
x=size(cDm);
for i=1:x(1)
    [cA1,cD1]=dwt(cDm(i,:),wavename);
    cH=[cH;cA1];cD=[cD;cD1];
end
% 转置矩阵
cA=cA';cH=cH';cV=cV';cD=cD';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -