当前位置:首页 >> 信息与通信 >>

DCT与DWT对图像处理的matlab仿真


数字图像处理实验报告 DCT 和 DWT 的 MATLAB 仿真

实验目的
学习 DCT 变换基本原理; 掌握 DCT 变换的特性; 理解 DCT 变换在图像图理中的应用; 学习 DWT 变换基本原理; 掌握 DWT 变换的特性; 理解 DWT 变换在图像图理中的应用。

1

实验内容及结果

散余弦变换(DCT) 对 lena、camenaman、bird 三幅灰度图像做 DCT 变换。 1、lena.tif (1)lena.tif 原始图像如图 1-1: 原始图像

图 1-1

(2)对整幅图像直接进行 DCT 变换,得系数图如图 1-2。 DCT 系数

图 1-2

观察系数图,会发现经过 DCT 变换后,能量分布不均匀,左上角 2

低频部分系数值高,右下角高频部分系数值低,这表明图像能量主要 集中在低频上。 (3)为了定量分析系数能量分布情况,取系数矩阵左上角 16*16 个 相素,计算其能量在整个矩阵中占的百分比。经计算,得能量百分比 为 energy_percent=96.32%。 可见低频部分能量在整幅图中占的比重是非常大的。 (4)由以上分析可以得出,高频成分能量在图中占的比重很小,它 反映的是图像的细节,因此,可丢掉高频信息,实现数据压缩。在具 体实现上, 对图像进行 8*8 分块 DCT 变换, 并只保留每个分块系数左 上角 10 个系数(共 64 个系数) ,重构图像并对比。对比如图 1-3。 原始图像 压缩后的图像

图 1-3

对比原图和压缩后的图像,可以看出,保留 10 个像素值重构图像仍 然较好,视觉效果可以接受。 计算原始图像和压缩后的图像的峰值信噪比(PSNR) ,得 3

PSNR=+35.01 dB。 2、cameraman.tif Cameraman 和 bird 的 DCT 变换处理方式与 lena 基本相同,因此对于 这两幅图像只附上其处理结果,具体过程及对结果分析不再赘述。 (1)cameraman 原始图像如图 1-4。 原始图像 像

图 1-4

(2)系数图如图 1-5。 DCT 系数

图 1-5

(3)计算左上角 16*16 个像素的能量分布百分比,得 4

energy_percent=94.83%。 (4)对比原始图像和压缩后的图像,如图 1-6。 原始图像 压缩后的图像

图 1-6

计算峰值信噪比,得 PSNR=+33.79 dB。 3、bird.tif (1)bird 原始图像如图 1-7。 原始图像

图 1-7

5

(2)系数图如图 1-8。 DCT 系数

图 1-8

(3)计算左上角 16*16 个像素的能量百分比,得 energy_percent=97.19%。 (4)对比原如图像和压缩后的图像,如图 1-9。 原始图像 压缩后的图像

图 1-9

计算峰值信噪比,得 PSNR=+33.91 dB。

6

二、离散小波变换(DWT) 仍然采用 lena、cameraman、bird 这三幅图像进行离散小波变换。采 用的小波为哈尔小波(haar) 。 1、lena.tif (1)lena 的原始图像如下图 2-1。 原始图像

图 2-1

(2)对图像进行一级分解,图像被分解为 2*2 个空间分布的小波系 数:近似值系数、水平细节系数、垂直细节系数和对角细节系数。如 图 2-2。
近似值系数 水平细节系数

垂直细节系数

对角细节系数

7

观察对比这 4 个子带, 小波系数的分布特点是越往低频子带系数值越 大,包涵的图像信息越多,对视觉比较重要,如近似值系数。越往高 频子带系数值越小,包涵的图像信息越少,对视觉来说不太重要。因 此,可只保留低频子带,从而实现图像压缩。 (3)计算系数能量比。保留低频子带系数,计算其占的能量百分比 为 energy_percent=99.50%。 可见,低频子带占了绝大部分能量。 (4)用低频子带系数重构图像,并与原图像对比,如下所示。 原始图像 重构图像

图 2-3

将由低频子带重构的图像与原图像对比,可以发现视觉效果非常好, 计算两幅图的峰值信噪比,得 PSNR=+34.99 dB。 2、cameraman.tif 8

对于 cameraman 和 bird 两幅图像,只附上实验结果,具体过程不再 赘述。 (1)caemraman 原始图像如图 2-4。 原始图像 像

图 2-4

(2)一级分解各子带如图 2-5。
近似值系数 水平细系数

垂直细节系数

对角细节系数

图 2-5

(3)计算低频子带系数能量比,得 energy_percent=98.98%。 (4)对比原始图像和重构图像,如下图 2-6 所示。 9

原始图像

重构图像

图 2-6

计算峰值信噪比,得 PSNR=+34.63 dB。 3、bird.tif (1)bird 原始图像如下图 2-7 所示。 原始图像

图 2-7

(2)一级分解各子带系数如图 2-8 所示。

10

近似值系数

水平细节系数

垂直细节系数

对角细节系数

图 2-8

(3)计算低频子带系数能量比,得 energy_percent=99.235。 (4)对比原始图像和重构图像,如下图 2-9 所示。 原始图像 重构图像

图 2-9

计算峰值信噪比,得 PSNR=+34.06 dB。 11

附录 1
clear;clc

DCT 源代码

%读取并显示原图像 i1=imread('lena.tif'); bird.tif figure(1);imshow(i1);title('原始图像') % 其 他 两 幅 图 像 需 将 此 处 改 为 cameraman.tif 和

%进行 DCT 变换并显示 DCT 系数图 j=dct2(i1); figure(2);imshow(log(abs(j)),[]);title('DCT 系数'); colormap(jet(64));

%分析 DCT 系数能量分布情况 a=zeros(size(i1)); a(1:16,1:16)=1; e1=(abs(j).*a).^2; e2=abs(j).^2; c1=sum(sum(e1,1),2); c2=sum(sum(e2,1),2); energy_percent=c1/c2

12

%对图像进行分块 DCT 变换 fun1=@dct2; k=blkproc(i1,[8 8],fun1);

%数据压缩,丢弃高频数据 T=[1 1 1 1 0 0 0 0 11100000 11000000 10000000 00000000 00000000 00000000 0 0 0 0 0 0 0 0]; l=blkproc(k,[8 8],'P1.*x',T); fun2=@idct2; i2=blkproc(l,[8 8],fun2);

%对比原始图像与压缩后的图像,并求 panr i2=(i2)/255; i2=im2uint8(i2); figure(3); subplot(1,2,1);imshow(i1);title('原始图像');

13

subplot(1,2,2);imshow(i2);title('压缩后的图像'); psnr(i1,i2);

附录 2
clear

DWT 源代码

%读取并显示原始图像 a=imread('lena.tif'); %其他两幅图像需将此处改为 cameraman.tif 和 bird.tif figure(1);imshow(a);title('原始图像')

%进行一级小波变换;采用 haar 小波 w='haar'; [ca1,ch1,cv1,cd1]=dwt2(a,w); a1=upcoef2('a',ca1,w,1); h1=upcoef2('h',ch1,w,1); v1=upcoef2('v',cv1,w,1); d1=upcoef2('d',cd1,w,1);

%显示各部分系数 figure(2); subplot(2,2,1);imshow(a1,[]);title('近似值系数') subplot(2,2,2);imshow(ch1,[0,30]);title('水平细节系数') subplot(2,2,3);imshow(cv1,[0,30]);title('垂直细节系数') subplot(2,2,4);imshow(cd1,[0,30]);title('对角细节系数')

14

%计算系数能量分布情况 m=abs(a1).^2; n=abs(a1.^2+h1.^2+v1.^2+d1.^2); energy_percent=sum(sum(m,1),2)/sum(sum(n,1),2)

%只保留近似值系数,对比原始图像和重构的图像 a1=(a1)/255; a1=im2uint8(a1); figure(3); subplot(1,2,1);imshow(a);title('原始图像') subplot(1,2,2);imshow(a1);title('重构图像') psnr(a,a1);

15

附录 3

PSNR 计算函数

function psnr=psnr(a,b) c=b-a; MSE=mean(mean(c.^2)); psnr=10*log10(255^2/MSE); disp(sprintf('PSNR=+%5.2f dB',psnr));

16


相关文章:
DCT与DWT对图像处理的matlab仿真
DCT与DWT对图像处理的matlab仿真_信息与通信_工程科技_专业资料。DCT与DWT对图像处理的matlab仿真数字图像处理实验报告 DCT 和 DWT 的 MATLAB 仿真 实验目的学习 DCT...
PHOTOSHOP与MATLAB在图像处理上的比较
PHOTOSHOP与MATLAB图像处理上的比较_计算机软件及应用_IT/计算机_专业资料。...但是多图像平均法对多幅图像有较高的要 求,如相对固定的背景、大小等,因此...
学年论文基于matlab的图像处理
图像处理的信息量很大,处理速度的要求也比较高。MATLAB 强大的运算图形 展示...线性滤波滤波器设计、 变换(DCT 变换等) 、图像分析和统计、二值图像操作等...
基于MATLAB的数字图像处理研究
(DCT) 及其反变换函数,以及连续小波变换(CWT)、离散小波变换(DWT)及其反变换。...在 此基础上,利用 MATLAB 对图像滤波进行编程和仿真,并将结果与频域法的低通...
MATLAB图像处理函数大全
(X,MROWS,NCOLS) 其中,MROWS NCOLS 指定对 ...离散余弦变换的 Matlab 实现 2.1. dct2 函数 ...(1) dwt 函数 功能:一维离散小波变换 格式:[cA,...
【毕业论文】基于matlab的人脸识别系统设计与仿真(含matlab源程序)
基于matlab 的人脸识别系统设计与仿真 第一章 绪论 ...箱对图像进行经典图像处理,通过实例来应用 matlab ...DCT 变换等的系数,然后再进行反变换,便可得到处理后...
matlab图像处理函数大全
那么 Matlab 将会对 X 进行零填充,否则将进行截取,...A B=dct2(A,m,n) B=dct2(A,[m,n]) ...(1) dwt 函数 功能:一维离散小波变换 格式:[cA,...
MATLAB图像处理界面设计
原始图像数据,并对它们自动分析和处理,得到所需要的...开放性使 MATLAB 广受用户欢迎.除内部函数外,所有 ...以及连续小波变换 (CWT)、离散小波变换(DWT)及其反...
matlab图像处理函数
B =dct2(A,m,n) B=dct2(A,[m,n]) 通过对 A 补 0 或剪裁,使...3. 图像小波变换的 Matlab 实现 3.1 一维小波变换的 Matlab 实现 (1) dwt ...
matlab图像处理论文
从而更加容易对图 像中感兴趣的目标进行检测测量...(DCT 变换等)、图像分析 统计、 二值图像操作等...以及连续 小波变换(CWT)、离散小波变换(DWT)及其反...
更多相关标签:
图像dct变换 matlab | dct图像压缩 matlab | 比较dct与dwt | dft dct dwt | dwt dft dct 数字水印 | 比较dct和dwt | matlab图像融合仿真 | matlab dwt |