写一个数字图像离散小波变换的matlab程序
时间: 2023-07-22 07:13:05 浏览: 209
下面是一个简单的数字图像离散小波变换的Matlab程序示例:
```matlab
% 读取图像
img = imread('lena.png');
% 将图像转换为灰度图像
img = rgb2gray(img);
% 进行离散小波变换
[cA, cH, cV, cD] = dwt2(img, 'haar');
% 显示四个子图像
subplot(2,2,1), imshow(cA, []), title('Approximation')
subplot(2,2,2), imshow(cH, []), title('Horizontal Detail')
subplot(2,2,3), imshow(cV, []), title('Vertical Detail')
subplot(2,2,4), imshow(cD, []), title('Diagonal Detail')
```
以上程序实现了对lena.png图像进行离散小波变换,并将变换结果分为近似分量、水平细节分量、垂直细节分量和对角线细节分量四个部分进行显示。其中,dwt2函数实现了二维离散小波变换,'haar'参数表示使用Haar小波作为小波基函数。
阅读全文