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

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图像处理函数
B =dct2(A,m,n) B=dct2(A,[m,n]) 通过对 A 补 0 或剪裁,使...3. 图像小波变换的 Matlab 实现 3.1 一维小波变换的 Matlab 实现 (1) dwt ...
基于MATLAB的图像复原与重建设计
基于 MATLAB图像复原与重建设计前言随着网络和通信...可视化建模仿真,文字处理及实时控制等功能;科学工具包...(DCT) ,连续小波变换(CWT) 、离散小波变换(DWT)...
MATLAB图像处理函数大全
B=dct2(A,m,n) B=dct2(A,[m,n]) 通过对 A 补 0 或剪裁,使 ...3. 图像小波变换的 Matlab 实现 3.1 一维小波变换的 Matlab 实现 (1) dwt ...
基于MATLAB的图像处理(基础强化训练报告)
(傅立叶变换) ,DCT(离散余弦变化) ,DWT(离散小 ...MATLAB 软件 ② 数字信号处理与图像处理基础知识 ...(鉴 3-204,7 月 14 日) 第 21 周,仿真设计(...
MATLAB图像处理界面设计
MATLAB图像处理界面设计_计算机软件及应用_IT/计算机_...(DCT 变换等) 、图像分析和统计、二值图像操作 等...以及连续小波变换 (CWT)、离散小波变换(DWT)及其反...
基于Matlab的数字图像增强处理
Matlab 强大的运算 图形展示功能,使图像处理变得...(DCT 变换等) 、图像分析和统计、二值图像操作 等...以及连续小波变换 (CWT)、离散小波变换(DWT)及其反...
matlab图像处理讲解
离散余弦变换的 Matlab 实现 2.1. dCT2 函数 功能:二维 DCT 变换 格式:B=...3. 图像小波变换的 Matlab 实现 3.1 一维小波变换的 Matlab 实现 (1) dwt ...
MATLAB图像处理
(傅立叶变换) ,DCT(离散余弦变化) ,DWT(离散小 ...文字处理,可视化建模仿真和实时控制等功能,MATLAB 语...通过对采集的图像进行常规的数学统计数 据处理和计算...
MATLAB数字图像处理
(傅立叶变换),DCT(离散余弦变化),DWT(离散小波....8 3.2 仿真结果……….…9 4 离散余弦变换...MATLAB 对图像的处理功能主要 集中在它的图像处理工具...
用Matlab进行数字图像处理实验2
Matlab进行数字图像处理实验2 Matlab对图像进行DFT,DCT,DWT变换的应用举例(详细)Matlab对图像进行DFT,DCT,DWT变换的应用举例(详细)隐藏>> 初二年级音乐理论测...
更多相关标签:
图像dct变换 matlab | dct图像压缩 matlab | matlab图像平移仿真 | matlab仿真图像调焦 | matlab dwt | matlab dwt函数 | dwt matlab 数字水印 | matlab dwtmode |