图像压缩实验报告.docx

上传人:b****0 文档编号:17112288 上传时间:2023-07-22 格式:DOCX 页数:13 大小:19.96KB
下载 相关 举报
图像压缩实验报告.docx_第1页
第1页 / 共13页
图像压缩实验报告.docx_第2页
第2页 / 共13页
图像压缩实验报告.docx_第3页
第3页 / 共13页
图像压缩实验报告.docx_第4页
第4页 / 共13页
图像压缩实验报告.docx_第5页
第5页 / 共13页
图像压缩实验报告.docx_第6页
第6页 / 共13页
图像压缩实验报告.docx_第7页
第7页 / 共13页
图像压缩实验报告.docx_第8页
第8页 / 共13页
图像压缩实验报告.docx_第9页
第9页 / 共13页
图像压缩实验报告.docx_第10页
第10页 / 共13页
图像压缩实验报告.docx_第11页
第11页 / 共13页
图像压缩实验报告.docx_第12页
第12页 / 共13页
图像压缩实验报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

图像压缩实验报告.docx

《图像压缩实验报告.docx》由会员分享,可在线阅读,更多相关《图像压缩实验报告.docx(13页珍藏版)》请在冰点文库上搜索。

图像压缩实验报告.docx

图像压缩实验报告

竭诚为您提供优质文档/双击可除

图像压缩实验报告

 

  篇一:

实验三图像压缩

  实验三图像压缩

  一、实验目的

  1.理解有损压缩和无损压缩的概念;

  2.理解图像压缩的主要原则和目的;

  3.了解几种常用的图像压缩编码方式。

  4.利用mATLAb程序进行图像压缩。

  二、实验仪器

  1计算机;

  2mATLAb等程序;

  3移动式存储器(软盘、u盘等)。

  4记录用的笔、纸。

  三、实验原理

  1.图像压缩原理

  图像压缩主要目的是为了节省存储空间,增加传输速度。

图像压缩的理想标准是信息丢失最少,压缩比例最大。

不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。

压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。

  信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。

高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。

  编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。

  

(1).冗余度压缩方法,也称无损压缩、信息保持编码或嫡编码。

具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。

  

(2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。

也就是说解码图像和原始图像是有差别的,允许有一定的失真。

  应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类:

  

(1)无损压缩编码种类

  哈夫曼(huffman)编码,算术编码,行程(RLe)编码,Lempelzev编码。

  

(2)有损压缩编码种类

  预测编码,Dpcm,运动补偿;

  频率域方法:

正交变换编码(如DcT),子带编码;

  空间域方法:

统计分块编码;

  模型方法:

分形编码,模型基编码;

  基于重要性:

滤波,子采样,比特分配,向量量化;

  (3)混合编码。

  有JbIg,h261,Jpeg,mpeg等技术标准。

  本实验主要利用mATLAb程序进行离散余弦变换(DcT)压缩和行程编码(RunLengthencoding,RLe)。

  1)离散余弦变换(DcT)图像压缩原理

  离散余弦变换DcT在图像压缩中具有广泛的应用,它是Jpeg、mpeg等数据压缩标准的重要数学基础。

  和相同图像质量的其他常用文件格式(如gIF(可交换的图像文件格式),TIFF(标签图像文件格式),pcx(图形文件格式))相比,Jpeg是目前静态图像中压缩比最高的。

Jpeg比其他几种压缩比要高得多,而图像质量都差不多(Jpeg处理的图像只有真彩图和灰度图)。

正是

  由于其高压缩比,使得Jpeg被广泛地应用于多媒体和网络程序中。

Jpeg有几种模式,其中最常用的是基于DcT变换的顺序型模式,又称为基本系统(baseline)。

  用DcT压缩图像的过程为:

  

(1)首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DcT变换。

  

(2)将变换后得到的量化的DcT系数进行编码和传送,形成压缩后的图像格

  式。

  用DcT解压的过程为:

  

(1)对每个8×8或16×16块进行二维DcT反变换。

  

(2)将反变换的矩阵的块合成一个单一的图像。

  余弦变换具有把高度相关数据能量集中的趋势,DcT变换后矩阵的能量集中在矩阵的左上角,右下的大多数的DcT系数值非常接近于0。

对于通常的图像来说,舍弃这些接近于0的DcT的系数值,并不会对重构图像的画面质量带来显著的下降。

所以,利用DcT变换进行图像压缩可以节约大量的存储空间。

压缩应该在最合理地近似原图像的情况下使用最少的系数。

使用系数的多少也决定了压缩比的大小。

  在压缩过程的第2步中,可以合理地舍弃一些系数,从而得到压缩的目的。

在压缩过程的第2步,还可以采用RLe和huffman编码来进一步压缩。

  2)行程编码(RLe)原理:

  例如如下这幅的二值图像,

  如果采用行程编码可以按如下格式保存

  其中10和8表示图像的宽和高。

在这个小例子中行程编码并没有起到压缩图像的作用。

这是由于这个图的尺寸过小,当图像尺寸较大时行程编码还是不错的无损压缩方法。

对于灰度图像和二值图像,用行程编码—般都有很高的压缩率。

行程编码方法实现起来很容易,对于具有长重复值的串的压缩编码很有效,例如:

对于有大面积的阴影或颜色相同的图像,使用这种方法压缩效果很好。

很多位图文件格式都采用行程编码,如TIFF,pcx,gem,bmp等。

  四、实验步骤

  1打开计算机,启动mATLAb程序;

  2调入数字图像,并进行数据的DCT变换编码压缩处理;

  3比较它们的数据量。

  4记录和整理实验报告

  五、实验内容

  matlab源程序如下:

  clc

  clearall

  I=imread(lina.gif);

  I=im2double(I);%转换图像矩阵为双精度型。

  J=dct2(I);

  T=dctmtx(8);%产生二维DcT变换矩阵

  a1=[1611101624405161;

  1212141926586055;

  1413162440576956;

  1417222951878062;

  182237566810910377;

  243555648110411392;

  49647887103121120XX1;

  7292959811210010399];

  fori=1:

8:

512

  forj=1:

8:

512

  p=I(i:

i+7,j:

j+7);

  K=T*p*T;

  I2(i:

i+7,j:

j+7)=K;

  K=K./a1;%量化

  K(abs(K)  I3(i:

i+7,j:

j+7)=K;

  end

  end

  figure;

  imshow(I3);

  title(DcT变换后的频域图像);%显示DcT变换后的频域图像fori=1:

8:

512

  forj=1:

8:

512

  p=I3(i:

i+7,j:

j+7).*a1;%反量化

  K=T*p*T;

  I4(i:

i+7,j:

j+7)=K;

  end

  end

  figure;

  imshow(I4);

  title(复原图像);

  b=blkproc(I,[8,8],p1*x*p2,T,T);

  %计算二维DcT,矩阵T及其转置是DcT函数p1*x*p2的参数

  mask=[11110000

  11100000

  11000000

  10000000

  00000000

  00000000

  00000000

  00000000];

  %二值掩模,用来压缩DcT系数,只留下DcT系数中左上角的10个

  b2=blkproc(b,[88],p1.*x,mask);%只保留DcT变换的10个系数I2=blkproc(b2,[88],p1*x*p2,T,T);%重构图像

  figure;

  imshow(I);

  title(原始图像);

  figure;

  imshow(I2);

  title(压缩图像);

  figu(:

图像压缩实验报告)re;

  imshow(J);

  figure;

  mesh(J);%画出J的立体网状图

  colorbar(horiz);%在水平条方向用不同的颜色表示曲面的高度

  六、实验结果

  DcT变换后的频域图像在matlab中运行后,实验结果如图:

  复原图像

  原始图像

  篇二:

数字图像处理实验报告5

  数字图像处理与分析

  实验报告

  学院:

班级:

姓名:

学号:

  实验五

(1)图像压缩

  一、实验目的

  1.理解图像压缩的基本定义和常见方法2.掌握在mATLAb中进行图像压缩的方法3.掌握利用DcT进行图像压缩的方法

  4.进一步熟悉了解mATLAb语言的应用,为进行综合性图像处理实验打下基础

  二、实验内容

  %利用离散余弦变换进行Jpeg图像压缩

  I=imread(1.bmp);%读入原图像;

  I=im2double(I);%将原图像转为双精度数据类型;T=dctmtx(8);%产生二维DcT变换矩阵

  b=blkproc(I,[88],p1*x*p2,T,T);%计算二维DcT,矩阵T及其转置T’是DcT

  函数p1*x*p2的参数

  mask=[111100*********01100000010000000000000000000000000000000

  00000000];%二值掩膜,用来压缩DcT系数,只留下数中

  左上角的10个

  b2=blkproc(b,[88],p1.*x,mask);%只保留DcT变换的10个系数I2=blkproc(b2,[8,8],p1*x*p2,T,T);%逆DcT,重构图像subplot(1,2,1);

  Imshow(I);title(原图像);%显示原图像subplot(1,2,2);

  Imshow(I2);title(压缩图像);%显示压缩后的图像。

虽然舍弃了85%的DcT

  系数,但图像仍然清晰(有一些质量损失)

  得到图像:

  

(2)数学形态学

  一、实验目的

  1.了解二值形态学的基本运算

  2.掌握基本形态学运算的matlab实现imclose,imopen,imdilate,imerode,strel.3.了解形态操作的应用

  二、实验内容

  1.实现二值图像的基本形态学处理(腐蚀、膨胀、开运算和闭运算);2.选择不同结构元素筛选图像目标。

  三、实验步骤

  运用空间椭球状的元素结构处理1.实现图像的膨胀处理

  I=imread(c:

\Documentsandsettings\Administrator\桌面\Img0923181600.bmp);se=strel(ball,5,5);I2=imdilate(I,se);imshow(I);title(original);figure;

  imshow(I2);title(Dilated);得到图像:

  2.实现图像的腐蚀处理

  I=imread(c:

\Documentsandsettings\Administrator\桌面\Img0923181600.bmp);se=strel(ball,5,5);I2=imerode(I,se);imshow(I);

  title(original);figure;

  imshow(I2);title(eroded);

  得到图像:

  3.实现图像的开运算处理

  I=imread(c:

\Documentsandsettings\Administrator\桌面\Img0923181600.bmp);se=strel(ball,5,5);I2=imopen(I,se);imshow(I);title(original);figure;

  imshow(I2);title(opened);得到图像:

  4.实现图像的闭运算处理

  I=imread(c:

\Documentsandsettings\Administrator\桌面\Img0923181600.bmp);se=strel(ball,5,5);

  I2=imclose(I,se);imshow(I);title(original);figure;

  imshow(I2);title(closed);得到图像:

  运用垂直线型的元素结构处理1.实现图像的膨胀处理

  I=imread(c:

\Documentsandsettings\Administrator\桌面\Img0923181600.bmp);se=strel(line,11,90);I2=imdilate(I,se);imshow(I);title(original);figure;

  imshow(I2);title(Dilated);得到图像:

  篇三:

数据压缩实验报告4

(2)

  DcT是仅次于K-L变换的次最佳正交变换,且以获得广泛应用,并成为许多图像编码国际

  桂林理工大学实验报告

  (20XX~20XX学年度第一学期)

  标准的核心。

离散余弦变换的变换核为余弦函数,计算速度快,有利于图像压缩和其他处理。

  对于n×n的数字图像,二维DcT变换的正反变换可表示为:

  n?

1n?

1

  (2x?

1)u?

  (2y?

1)v?

  F(u,v)?

c(u)c(v)f(x,y)coscos班级:

学号:

姓名:

?

?

2n2nx?

0y?

0

  n?

1n1实验名称:

实验四图像DcT变换编码与压缩日期:

20XX年12月12日2?

(2x?

1)u?

  (2y?

1)v?

  (2.2.1)

  一、实验题目:

  图像DcT变换编码与压缩

  二、实验目的:

  

(1)掌握离散余弦变换DcT的实现方法,了解DcT的幅度分布特性,从而加深对DcT变换的认识。

  

(2)掌握图像DcT变换编码的实现方法,从而加深对变换编码压缩图像原理的理解。

  三、实验内容:

  编程实现图像DcT变换编码。

  四、预备知识:

  

(1)熟悉DcT原理。

(2)熟悉变换编码原理。

  (3)熟悉在mATLAb环境下对图像文件的I/o操作。

  五、实验原理:

  变换编码是在变换域进行图像压缩的一种技术。

图2.2.1显示了一个典型的变换编码系统。

  输入图

  压缩像n×n图像

  图2.2.1变换编码系统

  在变换编码系统中,如果正变换采用DcT变换就称为DcT变换编码系统。

  DcT用于把一幅图像映射为一组变换系数,然后对系数进行量化和编码。

对于大多数的正常图像来说,多数系数具有较小的数值且可以被粗略地量化(或者完全抛弃),而产生的图像失真较小。

  f(x,y)?

  n

  ?

?

c(u)c(v)F(u,v)cos

  u?

0v?

0

  2n

  cos

  2n

  其中,

  c(u)?

c(v)?

?

?

  ?

u?

0或v?

0?

1,2,...,n?

1

  ?

1u,v?

mATLAb图像处理工具箱实现离散余弦变换有两种方法:

  

(1)使用函数dct2,该函数用一个基于FFT的算法来提高当输入较大的方阵时的计算速度。

  

(2)使用由dctmtx函数返回的DcT变换矩阵,这种方法较适合于较小的输入方阵(例如8×8或16×16)。

  ①函数:

dct2

  实现图像的二维离散余弦变换。

调用格式为:

b=dct2(A)b=dct2(A,[mn])b=dct2(A,m,n)

  式中A表示要变换的图像,m和n是可选参数,表示填充后的图像矩阵大小,b表示变换后得到的图像矩阵。

  ②函数:

dctmtx

  除了用dct2函数实现二维离散余弦变换,还可用dctmtx函数来计算变换矩阵,调用格式为:

  D=dctmtx(n)

  式中D是返回n×n的DcT变换矩阵,如果矩阵A是n×n方阵,则A的DcT变换可用D×A×D’来计算。

这在有时比dct2计算快,特别是对于A很大的情况。

  ③函数:

idct2

  实现图像的二维离散余弦反变换。

调用格式为:

b=idct2(A)b=idct2(A,[mn])b=idct2(A,m,n)式中参数同dct2。

  此外,为了实现8×8子块的DcT图像变换还要用到mATLAb中的blkproc函数。

将这个函数和函数dctmtx一起用于块处理可以大大简化运算。

调用函数blkproc的格式为:

  b=blkpro(A,[m,n],Fun,p1,p2,…)

  其中,A表示原图像,[m,n]指定了大小为m×n的滑动邻域,Fun是对m×n的矩阵进行计算的函数,pi是传递给Fun的附加参数。

该函数自动实现图像块处理的整个过程。

blkproc把A分成m×n个块,对每个块调用参数为p1,p2,…的函数Fun,并重新将结果组合到输出图像b。

  blkproc函数实现n×n矩阵的DcT变换和反变换。

编程中可写成:

Y=blkproc(F,[88],’p1*x*p2’,h,h’)同样的道理,blkproc函数还用于量化和反量化。

  显示误差直方图可能用到的mATLAb函数有:

max%找图像差最大值[]=hist%用于生成直方图数据bar%显示图像差值直方图

  以上函数用mATLAb的help查看具体使用方法。

  图2.2.2显示了采用Jpeg标准化矩阵进行DcT变换编码的结果。

  图2.2.2DcT变换编码

  六、实验步骤:

  DcT变换编码流程如下:

步骤1:

设置Jpeg标准化数组;步骤2:

求8×8快的DcT变换矩阵;步骤3:

计算8×8快的DcT变换;步骤4:

对DcT系数量化和反量化;步骤5:

求反量化系数的逆DcT变换;

  步骤6:

重新显示重建图像、误差图像和误差图像的直方图。

量化时可采用Jpeg标准推荐的归一化数组,如表2.2.1所示。

  表2.2.1Jpeg标准化数组

  七、实验程序代码:

  functiony=dctcoder(x,quality)m=[161110162440516112121419265860551413162440576956141722295187806218223756681091037724355564811041139249647887103121120XX17292959811210010399]*quality;[xm,xn]=size(x);xx=x;x=double(x);t=dctmtx(8);

  y1=blkproc(x,[88],p1*x*p2,t,t);%DcTy2=blkproc(y1,[88],round(x./p1),m);%Qy3=blkproc(y2,[88],x.*p1,m);%IQy=blkproc(y3,[88],p1*x*p2,t,t);%IDcTsubplot(2,2,1);imshow(xx);title(原始图像);

  subplot(2,2,2);imshow(mat2gray(y));title(重建图像);%reconstrutedimaged=x-y;%original-reconstruted

  subplot(2,2,3);imshow(mat2gray(d));title(误差图像);[h,k]=hist(d(:

),512);

  subplot(2,2,4);bar(k,h,k);title(误差图像直方图);

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2