数字图像处理实验指导书2011

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《数字图像处理》实验指导书计算机科学与技术系魏佳2011年9月实验一、图像直方图统计(验证性)一、实验目的1掌握MATLAB处理数字图像的基本方法;2掌握MATLAB绘制图像直方图的方法。二、实验原理1MATLAB窗口构成:在缺省的情况下,由三个窗口组成。命令窗口(commandwindow)、命令历史(commandhistory)、工作空间(workbench)。注意:缺省窗口的设置为:MATLAB菜单/view选项/Desktoplayout/default2调入一个文件:i=imread('lena.bmp)(观察此时的i出现在什么窗口?是什么类型的变量?大小是多少?);3显示这幅图:imshow(i);4显示这幅图像的直方图:imhist(i);4将变量i转置成j,即j=i';显示j即imshow(j);5写入到一个新的图像文件'abc.tif'中即imwrite(j,'abc.tif');6清除变量命令:clear;7清除用户开设的窗口命令:closeall;8试着自己写一段代码统计图像亮度信息绘制出直方图。三、实验步骤1运行MATLAB;2调入一个图像文件并显式;3显示图像的直方图信息;4对调入的图像进行转置并显示;5将转置后的图像用新的文件名保存;6清除变量和窗口;7记录和整理实验报告。四、实验仪器1计算机;2MATLAB应用软件;4记录用的笔、纸。五、实验报告内容1叙述操作过程2提交处理的图像的图像。六、思考题1图像转置后与原图像有何区别?实验二、灰度图像亮度变换(验证性)一、实验目的1了解灰度图像亮度变换的意义和手段;2熟悉灰度变换的基本性质;3通过本实验掌握利用MATLAB编程实现数字图像的灰度变换。二、实验原理1算法见教材P61,4.2.1灰度线性变换3利用MATLAB软件实现数字图像灰度变换的程序:I=imread(‘lena.bmp’);%读入原图像文件imshow(I);%显示原图像a=0;b=255;c=50;d=205;m=uint8(zeros(255,255));forj=1:size(i,1)fork=1:size(i,2)if(i(j,k)=a&i(j,k)b)m(j,k)=(d-c)/(b-a)*(i(j,k)-a)+c;elsem(j,k)=i(j,k);endendendimshow(m);三、实验步骤1打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;2利用MatLab工具箱中的函数编制灰度变换文件FG;3运行FG文件;4记录和整理实验报告。四、实验仪器1计算机;2MATLAB程序;3移动式存储器(U盘等)。4记录用的笔、纸。五、实验报告内容1叙述实验过程;2提交实验的原始图像和结果图像。六、思考题1如何将两幅图像显示在一个窗口内?实验三、图像去噪(验证性)一、实验目的1掌握灰度图像简单的去噪方法;2熟练掌握MATLAB实现模板操作的方法;3熟练掌握空域滤波中常用的平滑滤波器;4利用MATLAB程序进行图像去噪。二、实验原理见教材P65,4.4去除噪声。下面给出图像去噪的MATLAB程序:I=imread('lenan.bmp');%读入原图像subplot(1,3,1);imshow(I);title('原图');J=fspecial('average');J1=uint8(filter2(J,I));subplot(1,3,2);imshow(J1);title('3*3滤波');K=fspecial('average',9);K1=uint8(filter2(K,I));subplot(1,3,3);imshow(K1);title('9*9滤波');处理后的图像去除了噪声,但是会变得模糊。三、实验步骤1打开计算机,启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;2给加噪图片“lenan.bmp”去噪;4记录和整理实验报告。四、实验仪器1计算机;2MATLAB程序;3移动式存储器(U盘等)。4记录用的笔、纸。五、实验报告内容1叙述实验过程;2提交实验的原始图像和结果图像。六、思考题1试一试用fspecial函数生成其他滤波算子,观察去噪效果。实验四、图像压缩(综合性)一、实验目的1.理解有损压缩和无损压缩的概念;2.理解图像压缩的主要原则和目的;3.了解几种常用的图像压缩编码方式。4.利用MATLAB程序进行图像压缩。二、实验原理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等。2.图像压缩编码的MATLAB程序语句1)利用DCT变换进行图像压缩的MATLAB程序RGB=imread('原图像名.tif');I=rgb2gray(RGB);J=dct2(I);imshow(log(abs(J)),[]),colormap(jet(64)),colorbarJ(abs(J)10)=0;K=idct2(J);figure,imshow(I)figure,imshow(K,[0255])2)利用离散余弦变换进行JPEG图像压缩I=imread(‘原图像名.tif’);%读入原图像;I=im2double(I);%将原图像转为双精度数据类型;T=dctmtx(8);%产生二维DCT变换矩阵B=blkproc(I,[88],’P1*x*P2’,T,T’);%计算二维DCT,矩阵T及其转置T’是DCT函数P1*x*P2的参数Mask=[1111000011100000110000001000000000000000000000000000000000000000];%二值掩膜,用来压缩DCT系数,只留下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系数,但图像仍然清晰(当然有一些质量损失)3)利用行程编码(RLE)进行图像压缩I=checkerboard(10,2);%调入原图像[mn]=size(I);J=[];fori=1:mvalue=I(i,1);num=1;forj=2:nifI(i,j)==valuenum=num+1;elseJ=[Jnumvalue];num=1;value=I(i,j);endendI=[Jnumvalue00];%添加的行判断位00enddisp(‘原图像大小:’)whos(‘I’);disp(‘压缩图像大小:’)whos(‘J’);disp(‘图像的压缩比:’)disp(m*n/length(J))三、实验步骤1打开计算机,启动MATLAB程序;2调入“实验一”中获取的数字图像,并进行数据的行程(RLE)编码压缩处理;3将原图像在Photoshop软件中打开,分别以不同的位图文件格式进行“另保存”,比较它们的数据量。4记录和整理实验报告四、实验仪器1计算机;2MATLAB、Photoshop等程序;3移动式存储器(U盘等)。4记录用的笔、纸。五、实验报告内容1叙述实验过程;2提交实验的原始图像和结果图像。六、思考题1.图像中哪些信息是主要的,哪些信息是次要的?2.简述离散余弦变换(DCT)和行程编码(RLE)的原理。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功