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

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


相关文章:
基于matlab的数字图像处理fft ifft DCT IDCT...
基于matlab的数字图像处理fft ifft DCT IDCT..._信息与通信_工程科技_专业资料...图像复原程序设计 创建一个仿真运动/均值模糊 PSF 来模糊一幅图像(图像自选)。...
基于DCT的图像压缩编码算法的MATLAB实现
23 第 3 章 基于 DCT图像压缩 MATLAB 仿真...所谓的图像压缩编码技术就是对要处理的图像数据按...(DCT)为主的区块编码方式,转而采用以小波变换(DWT...
DCT变换的MATLAB实现_图文
MATLAB 的实现;第四部分检验程序和对图像变换结果的分析;第五部位是对 DCT ...它将数值分析、 矩阵计算、 科学数据可视化以及非线性动态系统的建模和仿真等诸多...
基于Matlab的数字水印设计—基于DCT域的水印实现
进行编程及仿真,仿真内容为基于 DCT 域的数字水印...(3)学会运用 MATLAB 工具箱对图像进行处理和分析; ...图像二维信号)变换到频域,常用的变换一般有 DWT、 ...
matlab对图像操作函数详解
(A,m,n) B=dct2(A,[m,n]) 通过对 A 补 0 或剪裁,使 B 的...3. 图像小波变换的 Matlab 实现 3.1 一维小波变换的 Matlab 实现 (1) dwt ...
图像的DCT变换
本文主要应用 MATLAB6.5 中发布的影像处理工具箱中的相关函 数命令来实现基于 DCT 的图像压缩编码理论算法的仿真。 1 沈阳理工大学数字图像处理课程设计 第 2 ...
二维灰度图象的统计分析 DWT变换处理 matlab图像处理
二维灰度图象的统计分析 DWT变换处理 matlab图像处理_...DCT(离散余弦变化) ,DWT(离散小波变化)]对图像进行...仿真设计(鉴主 13 楼计算机实验室) 第 20 周周六...
MATLAB数字图像处理几何变换傅里叶变换
MATLAB数字图像处理几何变换傅里叶变换_计算机软件及...二、 离散余弦变换(DCT 变换) 傅立叶变换的一个...(1) dwt 函数 Matlab 功能:一维离散小波变换 格式...
用Matlab进行数字图像处理实验2
Matlab进行数字图像处理实验2 Matlab对图像进行DFT,DCT,DWT变换的应用举例(详细)Matlab对图像进行DFT,DCT,DWT变换的应用举例(详细)隐藏>> 初二年级音乐理论测...
基于DCT的图像压缩编码算法的MATLAB实现
最后应用 MATLAB 进行了实验仿真 并分析结果得出结论。 实验结果表明基于 DCT ...所谓的图像压缩编码技术就是对要处理的图像数据按一定的规则进行 变换组合, ...
更多相关标签: