数字图像处理实验指导书XX.doc_第1页
数字图像处理实验指导书XX.doc_第2页
数字图像处理实验指导书XX.doc_第3页
数字图像处理实验指导书XX.doc_第4页
数字图像处理实验指导书XX.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字图像处理实验指导书XX 数字图像处理实验指导书武汉理工大学信息工程学院电子信息工程系武汉理工大学信息工程学院电子信息工程系xx年年3月月本课程安排如下4次实验实验0图像文件类型转换(自己课余时间完成)实验1图像变换实验2图像增强实验3图像压缩实验4图像滤波和边缘检测实验0图像文件类型转换实验目的理解数字图像文件的几种基本类型;掌握在MATLAB中进行图象文件类型转换的方法;观察图象转换前后的效果;加深对图像文件类型的理解;熟悉图像格式、颜色系统间的转换。 实验内容1)灰度图像与索引图像的相互转换;2)RGB图像与索引图像的相互转换;3)将图像转换为二值化图像。 用实验方法利用MATLAB工具进行实验。 一、灰度图像到索引图像的转换启动工具进行实验。 一、灰度图像到索引图像的转换启动MATLAB,新建一个自己的工作文件夹(如下图中的“MYFIG”)。 并把它设置在当前的工作路径(”)。 并把它设置在当前的工作路径(Current Directory)下。 图0.1Matlab启动运行界面1)在该文件夹中拷入个灰度图片,比如“2.jpg”文件。 2)在MATLAB命令输入窗中,调用函数info=imfinfo(2.jpg)观查2.jpg是否为灰度图像图0.2Matlab命令窗口运行界面在ColorType:grayscale属性行如此显示,则说明以2.jpg命名的文件为灰度图像。 3)输入如下命令完成转换RGB=imread(2.jpg);%将图像“2.jpg”的数据赋给变量RGBfigure (3);%设定显示窗口3imshow(RGB);%显示原“2.jpg”文件figure (1);%设定显示窗口1RGB1,map1=gray2ind(RGB,128);%指定灰度级128,进行灰度图像到索引图像转换imshow(RGB1,map1);%显示像索引图像1figure (2);%设定显示窗口2RGB2,map2=gray2ind(RGB,16);%指定灰度级16,进行灰度图像到索引图像转换imshow(RGB2,map2);%显示像索引图像2imwrite(RGB1,map1,3.bmp);%将索引图像1保存为名为“3.bmp”的文件imwrite(RGB2,map2,4.bmp);%将索引图像2保存为名为“4.bmp”的文件运行并观察结果和现象。 4)最后再调用函数info=imfinfo(3.bmp)观查3.bmp,4.bmp和是否为索引图像在ColorType:indexed属性行如此显示,则说明以3.bmp或4.bmp命名的文件为索引图像5)自己仿照以上操作完成索引图像到灰度图像的转换索引图像到灰度图像的转换的语句格式为:I=ind2gray(X,MAP) 二、RGB图像到索引图像的转换启动图像到索引图像的转换启动MATLAB,设置当前的工作路径1)在当前工作文件夹中拷入个RGB图片,比如“1.jpg”文件。 2)在MATLAB命令输入窗中,调用函数info=imfinfo(1.jpg)观查1.jpg是否为RGB图像ColorType:truecolorRGB图像3)输入如下命令完成转换RGB=imread(1.jpg);%将图像“1.jpg”的数据赋给变量RGBfigure (1);%设定显示窗口1imshow(RGB);%显示原“1.jpg”文件figure (2);%设定显示窗口2y=rgb2ind(RGB,256);%包含256色,进行RGB图像到索引图像的转换imwrite(y,1s.bmp);%将索引图像保存到名为“1s.bmp”的文件中imshow(y);%显示索引图像运行并观察结果和现象。 4)最后再调用函数info=imfinfo(1s.bmp)观查1s.bmp是否为索引图像在ColorType:indexed属性行如此显示,则说明以1s.bmp命名的文件为索引图像5)自己仿照以上操作完成索引图像到RGB图像的转换索引图像到RGB图像转换的语句格式为:RGB=ind2rgb(X,MAP) 三、RGB图像到二值图像的转换启动图像到二值图像的转换启动MATLAB,设置当前的工作路径1)将一个RGB图片(如1.jpg)变换成二值图像2)输入如下命令完成转换RGB=imread(1.jpg);%将图像“1.jpg”的数据赋给变量RGBfigure (3);%设定显示窗口3imshow(RGB);%显示原“1.jpg”文件bw1=im2bw(RGB,0.5);%阀值为0.5进行二值转换bw2=im2bw(RGB,0.6);%阀值为0.6进行二值转换figure (1);%设定显示窗口1imshow(bw1);%显示像索引图像bw1figure (2);%设定显示窗口2imshow(bw2);%显示像索引图像bw2运行并观察结果和现象。 3)其他格式文件转换为二值图像,请自己编写程序完成。 四、实验报告要求 (1)有实验目的,实验内容,实验过程,实验结果及分析,实验小结。 (2)有较详细的图文说明验实验1图像变换实验目的掌握图像变换的方法,观察图像变换的效果,熟悉图像傅立叶变换。 实验内容快速卷积实验,对图像进行傅立叶变换,卷积定理的验证;实验方法;实验方法利用MATLAB图像处理工具箱进行实验。 一、傅立叶变换实验1)理论基础在图像处理的广泛应用领域中,傅立叶变换起着非常重要的作用,具体表现在图像分析,图像增强和图像压缩方面。 设),(n m f是个离散空间中的二维函数,则该函数的二维傅立叶变换的定义如下?m nnj njdmdn e e nmfF21),(),(21?其中21,?是频谱变量,单位是弧度/采样单元,周期都是?2二维傅立叶反变换的定义如下21212112),(),(?d deeF nm fnj nj?*利用计算机进行傅立叶变换的通常形式为离散傅立叶变换,采用这种形式的傅立叶变换,主要是由于离散傅立叶变换的输入输出都是离散值,适合用计算机运算操作,并且可以提高运算速度。 离散傅立叶变换的定义如下?1010)/(2exp), (1),(NyMxN vyM uxj y x fMNv u F?二维傅立叶反变换公式如下?1010)/(2exp),(),(NvMuN vyM uxj vu Fy x f?其中1,.1,0;1,.1,0?N yM x通常情况下,数字图像处理用像素方阵表示,即M=N,此时二维傅立叶变换可简化为1.1,0,/)(2exp), (1),(10102?N y x Nvy uxj y x fNvu FNyNx?10101,.1,0,/)(2exp),(),(NvNuN vu Nvy uxj vu Fy x f?2)MATLAB中提供的变换函数 (1)fft2:用于计算二维快速傅立叶变换,语句格式B=fft2(I,m,n)按指定的点数计算m,返回矩阵B的大小为mn,不写默认为原图像大小。 (2)fftn:用于计算n维快速傅立叶变换 (3)fftshift:用于将变换后的图像频谱中心从矩阵的原点移到矩阵地中心,语法格式B=fftshift(I) (4)ifft2:用于计算图像的二维傅立叶反变换,语法格式B=ifft2(i) (5)ifftn:用于计算n维傅立叶变换3)快速卷积实验傅立叶变换一个重要特性是可以实现快速卷积。 设A为MN矩阵,B为PQ的矩阵,快速卷积方法如下*对A和B补0,使其大小都为(M+P-1)(N+Q-1)*利用fft2对矩阵A和B进行二维变换*将两个FFT结果相乘,利用ifft2对得到的乘积进行傅立叶反变换设A为MN矩阵,B为PQ的矩阵,快速卷积方法如下*对A和B补0,使其大小都为(M+P-1)(N+Q-1)*利用fft2对矩阵A和B进行二维变换*将两个FFT结果相乘,利用ifft2对得到的乘积进行傅立叶反变换现在令A=magic (3),B=ones (3),请按上述步骤自行完成实验。 参考如下启动MATLAB,在命令窗口中输入A=magic (3);B=ones (3);A(8,8)=0;B(8,8)=0;C=ifft2(fft2(A).*fft2(B);C=C(1:5,1:5);C=real(C) (1)观察运行结果,并记录。 (2)调用MATLAB提供的卷积函数conv2进行验证,对比结果是否正确C=conv2(A,B);C=C(1:5,1:5)运行并对比记录结果。 4)图像的二维傅立叶变换实验对一副灰度图片进行二维傅立叶变换,并且显示其幅度值 (1)启动MATLAB,设置当前工作路径 (2)在当前路径下的文件夹中拷入个灰度图片,比如“ex2.jpg”文件。 (3)输入如下命令,完成实验figure (1);RGB=imread(ex2.jpg);imshow(RGB);figure (2);B=fftshift(fft2(RGB);imshow(log(abs(B),),colormap(jet (64),colorbar; (4)观察结果,并记录。 (5)对程序的语句给出注释说明。 二、实验报告要求1)有实验目的,实验内容,实验过程,实验结果及分析,实验小结,有较详细的图文说明。 2)并独立完成以下实验创建一副图像,大小为128*128,背景为黑色,中间开出一个88白色的窗口;运用ff2函数,对上面产生的图像做二维离散傅立叶变换。 实验2图像增强实验目的掌握图像增强的方法。 掌握如何用matlab工具实现图像增强。 实验内容用matlab工具实现图像空间域和频率域增强,观察图像增强的效果,并对结果进行分析。 实验方法用Matlab编程实现。 一、空间域变换增强-增强对比度增强对比度是增强原图像的各部分的反差。 实际中往往是通过改变原图中某两个灰度值之间的动态范围来实现的(如图1)。 0f(x,y)g(x,y)a bcdM fM g图2.1增强对比度从图2.1中可以看出,通过变换可以减少原图的较高(f(x,y)b)的和较低(f(x,y) 可以写成如下表达式,其中Mf=M g=255。 问题的关键是根据实际图像,确定需要增大和减少的图像的灰度级范围,即确定对应的?a yxfyx facb yxfa ca yxfabc dMyxf bd byxfb MdMy xgffg), (0),(),(),(),(),(),(参数a,b,c,d。 利用MATLAB图像处理工具箱进行实验。 参考的MATLAB代码X1=imread(image.tif);figure,imshow(X1)f0=0;g0=0;f1=70;g1=30;f2=180;g2=230;f3=255;g3=255;r1=(g1-g0)/(f1-f0);b1=g0-r1*f0;r2=(g2-g1)/(f2-f1);b2=g1-r2*f1;r3=(g3-g2)/(f3-f2);b3=g2-r3*f2;m,n=size(X1);X2=double(X1);for i=1:mfor j=1:nf=X2(i,j);g(i,j)=0;if(f=0)&(f=f1)&(f=f2)&(f=f3)g(i,j)=r3*f+b3;endendendfigure,imshow(mat2gray(g)根据上述Matlab程序代码,写出线性变换表达式,画出变换图形。 选择一幅灰度级比较狭窄的图像,设计一个灰度变换函数,确定参数a,b,c,d的值,说明确定参数a,b,c,d的值的依据;写出对应的Matlab程序对其进行灰度变换,比较变换前后的效果,并进行分析。 二、频率域图像增强1.基本原理卷积理论是频域技术的基础。 设函数f(x,y)与线性移不变算子h(x,y)的卷积结果是g(x,y),即g(x,y)=h(x,y)*f(x,y)。 那么根据卷积定理在频域有G(x,y)=H(u,v)F(u,v)其中G(x,y)、H(u,v)、F(u,v)分别是g(x,y)、h(x,y)、f(x,y)的傅立叶变换。 频域滤波增强的主要步骤是 (1)对图像的进行傅立叶变换; (2)将其与一个(根据需要设计的)转移函数相乘; (3)再将结果进行傅立叶反变换以得到增强的图像。 频域增强的两个关键步骤 (1)将图像从空域转换到频域所需的变换及将图像从频域空间转换回空域所需的变换; (2)在频域空间对图像进行滤波增强的加工操作。 2.低通滤波图像的能量大部分集中在幅度谱的低频和中频度,而图像的边缘和噪声对应于高频部分。 因此能降低高频成分幅度的滤波器就能减弱噪声的影响。 Butterworth低通滤波器是一种物理上可以实现的低通滤波器,n阶、截断频率为d0的Butterworth低通滤波器的转移函数为H(u,v)=nd20/vud11),(?用MATLAB实现对图像加入“盐粉”噪声后进行Butterworth低通滤波器的参考代码如下所示I1=imread(lena.bmp);figure,imshow(I1)I2=imnoise(I1,salt);figure,imshow(I2)f=double(I2);g=fft2(f);g=fftshift(g);N1,N2=size(g);n=2;d0=50;n1=fix(N1/2);n2=fix(N2/2);for i=1:N1for j=1:N2d=sqrt(i-n1)2+(j-n2)2);h=1/(1+(d/d0)(2*n);result(i,j)=h*g(i,j);endendresult=ifftshift(result);X2=ifft2(result);X3=uint8(real(X2);figure,imshow(X3)选择一幅灰度图像,对其加入“胡椒”噪声后,利用频域方法对其进行滤波。 先对加噪声后的图像进行Fourier变换,设计一个滤波传递函数(说明选取滤波函数及其参数的理由),参考上述程序对其进行滤波,再作逆变换,比较处理前后的效果,并进行分析。 三、实验结果与分析得到程序的运行结果,并对结果进行分析。 四、思考题 (1)对参考程序给出功能注释。 (2)对不同的图像,如何选择灰度变换函数实现图像的增强处理?即如何确定灰度变换表达式中参数a,b,c,d的值。 (3)实现图像的高斯、指数低通滤波和高斯、指数高通滤波处理。 五、实验报告要求 (1)有实验目的,实验内容,实验过程,实验结果及分析,实验小结。 (2)有较详细的图文说明实验3图像压缩实验目的掌握图像压缩编码方法。 掌握如何用matlab工具实现图像压缩编码。 实验内容用matlab工具实现图像的预测编码和变换编码,观察图像压缩的效果,并对结果进行分析。 实验方法用Matlab编程实现。 一、图像预测编码图像预测编码分为无损预测编码和有损预测编码,本实验要求熟悉线性预测编码的基本原理,完成一幅图像经过线性无损预测编码和解码的全过程。 1.线性预测编码基本原理图像预测编码利用图像信号的空间或时间相关性,用已传输的像素对当前的像素进行预测,然后对预测值与真实值的差预测误差进行编码处理和传输。 目前用得较多的是线性预测方法,全称为差值脉冲编码调制(Differential PulseCode Modulation,DPCM)。 DPCM是图像编码技术中研究得最早且应用最广的一种方法,它的一个重要的特点是算法简单,易于硬件实现。 DPCM系统框图如图3.1所示。 其中左边的编码单元主要包括线性预测器和量化器两部分。 编码器的输出不是图像像素的样值0f,而是该样值与预测值0?f之间的差值,即预测误差0e的量化值0e?。 根据对图像信号的统计特性的分析,可以做出一组恰当的预测系数,使得预测误差的分布大部分集中在“0”附近,经非均匀量化,采用较少的量化分层,图像数据得到了压缩。 而量化噪声又不易被人眼所觉察,从而使得图像的主观质量并不明显下降。 图3.1的右边是DPCM解码器,其原理和编码器刚好相反。 图3.1DPCM系统框图DPCM编码性能的优劣,一方面取决于量化器产生失真的大小;另一方面取决于预测器的设计。 预测器的设计主要是确定预测器的阶数N,以及各个预测系数ia。 预测器的输出可表示为01?Ni iifa f?(3.1)式(3.1)中当ia为常数时,当前编码像素的预测值0?f是前N个已编码像素if值的线性组合,故称为线性预测,这里N是线性预测器的阶。 图3.2是一个4阶预测器的示意图,图3.2(a)表示预测器所用的输入像素和被预测像素之间的位置关系,图3.2(b)表示预测器的结构。 图3.2预测像素和预测器2.线性无损预测编码的Matlab实现下面对一幅大小为256*256,灰度级为256的标准图像lena进行无损的一阶预测编码(根据前值进行预测编码,其Matlab主程序为X=imread(lena.bmp);X1=double(X);Y=LPCencode(X1);XX=LPCdecode(Y);figure (1);subplot(1,3,1);imshow(X);subplot(1,3,2);imshow(mat2gray(Y);subplot(1,3,3);imshow(mat2gray(XX);e=double(X)-double(XX);m,n=size(e);erms=sqrt(sum(e(:).2)/(m*n);h,x=hist(X1(:);figure (2);subplot(1,2,1);bar(x,h,k);h,x=hist(Y(:);subplot(1,2,2);bar(x,h,k);编码函数为function y=LPCencode(x,f)error(nargchk(1,2,nargin)if nargin2f=1;endx=double(x);m,n=size(x);p=zeros(m,n);xs=x;zc=zeros(m,1);for j=1:length(f)xs=zc xs(:,1:end-1);p=p+f(j)*xs;endy=x-round(p);解码函数为function x=LPCdecode(y,f)error(nargchk(1,2,nargin);if nargin2f=1;endf=f(end:-1:1);m,n=size(y);order=length(f);f=repmat(f,m,1);x=zeros(m,n+order);for j=1:njj=j+order;x(:,jj)=y(:,j)+round(sum(f(:,order:-1:1).*x(:,(jj-1):-1:(jj-order),2);endx=x(:,order+1:end); 二、图像变换编码1.变换编码基本原理 二、图像变换编码1.变换编码基本原理图像数据一般具有较强的相关性,若所选用的正交矢量空间的基矢量与图像本身的主要特征相近,在该正交矢量空间中描述图像数据则会变得更简单。 图像经过正交变换后,把原来分散在原空间的图像数据在新的坐标空间中得到集中。 对于大多数图像,大量变换系数很小,只需要删除接近于零的系数,并且对较小的系数进行粗量化,而保留包含图像主要信息的系数,以此进行压缩编码。 在重建图像进行解码(逆变换)时,所损失的将是一些不重要的信息,几乎不会引起图像的失真。 图像的变换编码就是利用这些来压缩图像的,这种方法可得到较高的压缩比。 图3.3给出了变换编码系统图,从图中可以看出,变换编码并不是一次对整幅图像进行变换和编码,而是将图像分成nn(常用的n为8或16)个子图像后分别处理。 变换编码首先将一幅NN大小的图像分割成2(/)N n个子图像。 然后对子图像进行变换操作,解除子图像像素间的相关性,达到用少量的变换系数包含尽可能多的图像信息的目的。 接下来的量化步骤是有选择地消除或粗量化带有很少信息的变换系数,因为它们对重建图像的质量影响很小。 最后是编码,一般用变长码对量化后系数进行编码。 解码是编码的逆操作,由于量化是不可逆的,所以在解码中没有对应的模块。 其实压缩并不是在变换步骤中取得的,而是在量化变换系数和编码时取得的。 图3.3变换编码系统在变换编码中,其性能与所选用的正交变换类型、图像类型、变换块的大小、压缩方式和压缩程度等因素有关。 但在变换方式确定之后,变换块的大小选择就显得尤为重要,这是因为大量的图像统计结果显示,大多数图像仅在约20个相邻像素间有较大的相关性,而且一般当子图像尺寸16n?(像素)时,其性能已经改善不大。 同时,如果子图像块过大,其中所包含的像素就越多,变换时所需的计算量也就越大,因此一般子图像块的大小选为88或1616。 2.DCT变换编码Matlab实现对一幅大小为256*256,灰度级为256的标准图像lena,首先将图像分割成(256/8)*(256/8)个8*8子图像,对每个子图像进行DCT,这样每个子图像有64个变换系数,舍去75%的小的变换系数,即保留16个系数,进行41压缩,其Matlab程序如下cr=0.25;I1=imread(lena.bmp);I1=double(I1)/255;subplot(1,2,1);imshow(I1);t=dctmtx (8);dctcoe=blkproc(I1,88,P1*x*P2,t,t);coevar=im2col(dctcoe,88,distinct);coe=coevar;y,ind=sort(coevar);m,n=size(coevar);snum=64-64*cr;for i=1:ncoe(ind(1:snum),i)=0;endb2=col2im(coe,88,256256,distinct);I2=blkproc(b2,88,P1*x*P2,t,t);subplot(1,2,2);imshow(I2);e=double(I1)-double(I2);m,n=size(e);erms=sqrt(sum(e(:).2)/(m*n) 三、思考题 (1)对参考程序给出功能注释。 (2)熟悉有损预测编码的基本原理和Matlab的实现方法。 (3)用DCT变换对图像进行压缩编码,如果压缩比为21或81,如何编程实现。 四、实验报告要求 (1)有实验目的,实验内容,实验过程,实验结果及分析,实验小结。 (2)有较详细的图文说明实验4数字图像滤波及边缘检测实验目的1)综合运用图像处理的基本原理方法,解决实际问题;2)学会使用Matlab中值滤波函数进行图像去噪处理,并了解适用范围;3)了解函数imnoise的基本功能和输入参数的特点;4)掌握线性平滑滤波器和非线性平滑滤波器(中值滤波)的性能。 5)掌握图像边缘检测的基本算法。 实验内容平滑滤波,中值滤波,边缘检测。 实验方法利用MATLAB图像处理工具箱进行实验 一、图像平滑滤波*属于低通滤波器,可滤除掉灰度值具有较大较快变化的部分*模拟噪声生成函数imnoise,它可以对图像添加一些典型噪声语法格式J=imnoise(I,type)type为噪声类型,如高斯噪声gaussian,椒盐噪声salt&pepper等。 1.均值滤波(线性滤波):1)在当前工作文件夹中拷入个图片,比如“i_lena_gray.jpg”文件。 2)输入如下命令完成实验I=imread(i_lena_gray.jpg);I=imnoise(I,gaussian,0,0.02);%添加高斯噪声imshow(I);h=111111111;%产生滤波模板,不同模板对应的滤波形式也不同h=h/9;%滤波模板归一化J=conv2(I,h);%滤波并显示图像figure,imshow(J,)3)观察并记录结果,说明该程序的功能。 4)以上都是用3*3的模板对噪声进行滤波,现再自行设计一个5*5或7*7的模板进行处理,比较不同模板造成的差别。 2.中值滤波(非线性滤波):语法格式B=medfilt2(A)%用于3*3的滤波窗口对图像A进行处理B=medfilt2(A,m,n)%用指定大小为m*n的窗口对图像A进行处理1)输入如下命令完成实验I=imread(i_lena_gray.jpg);%将图像的数据赋给变量IJ=imnoise(I,gaussian,0.02);%加入噪声K=medfilt2(J);%进行中值滤波subplot(1,2,1),imshow(J);%分别显示原图像和变换后的图像subplot(1,2,2),imshow(K)2)观察并记录结果3)另选一幅图片分别叠加高斯噪声和椒盐噪声,分别用线性平滑滤波器和非线性平

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论