资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数字图像处理实验指导书前 言数字图像处理技术的研究内容涉及工程学、计算机科学、信息科学、统计学、物理学、生物医学工程和社会科学等领域它已成为高等理工院校电子信息工程、通信工程、生物医学工程、信号与信息处理等学科的一门重要的专业技术课。作为人类获取信息的重要来源及利用信息的重要手段数字图像处理技术被广泛应用于工业、农业、交通、气象、生物医学、军事、公安、机器人视觉、导航、多媒体信息网络通信等领域给人类带来了巨大的经济和社会效益。考虑到实际需要,在注重理论与实践的前提下,编写了这本实验指导资料。本书以实践为基础,利用MATLAB 图像处理工具箱在数学运算和算法验证上的优势,结合教学实际,安排了熟悉matlab编程环境和图像基本操、图像变换、图像增强和滤波增强、图像滤波恢复、图像的压缩编码、图像的边缘检测和分割、图像分割后的目标对象的参数测量以及伪彩色图像处理等部分的相关实验8个。通过具体的上机实践,激发同学们的学习激情在学习和实践中充分体验数字图像处理的内涵和它的魅力。实验一 熟悉matlab编程环境和图像基本操作一、实验目的及要求1.熟悉MATLAB编程环境2.熟悉图像的基本操作方法:读取、显示、保存、3.熟悉简单二值图像的创建以及图像的像素平移变换二、实验任务1从电脑中读取一幅图片并显示,然后保存到一个制定路径2创建一幅二值灰度图像,背景灰度级为0,图像中间矩形框的灰度级为2553对二值图像中矩形框的像素进行平移变换三、示例代码iname,ipath=uigetfile(*.jpg;*.bmp;*.tif;*.*,load image,); %读取图片I=ipath,iname;image=imread(I);imshow(image); %显示图片 imwrite(image, picture.jpg); %保存图片bwimage=zeros(256,256,uint8); %创建二值图像bwimage(100:156,100:156)=255;imshow(bwimage); M,N=size(bwimage);shiftdis=80; %定义像素平移量R=1,0,shiftdis;0,1,shiftdis;0,0,1; %定义平移矩阵temp=0,0,1 resultimage=zeros(M,N,uint8); for i=100:156 %平移转换 for j=100:156 temp(1)=i; temp(2)=j; transdot=R*temp; resultimage(transdot(1),transdot(2)=bwimage(i,j); end endfigure;imshow(resultimage);实验二 图像变换(傅里叶、离散余弦)一、实验目的及要求1.熟悉傅里叶变换和离散余弦变换的原理2.掌握傅里叶变换和离散余弦变换的算法和应用二、实验任务1从电脑中读取一幅图片并显示2将读取的彩色图片转换为灰度图3对灰度图分别进行傅里叶变换和离散余弦变换三、示例代码iname,ipath=uigetfile(*.jpg;*.bmp;*.tif;*.*,load image,);I=ipath,iname;image=imread(I);imshow(image); figure;igray=rgb2gray(image); %将彩色图转换为灰度图imshow(igray,); figure;X=fft2(igray); %二维傅里叶变换X2=abs(X.2);imshow(log(X2),); figure;Y=fftshift(X); %将低频点移动到中心Y=abs(Y);imshow(log(Y),);figure;imagecos=dct2(igray); %离散余弦变换imshow(log(abs(imagecos)实验三 图像的空域增强和滤波增强一、实验目的及要求1.熟悉图像的直方图计算方法和直方图均衡化原理2.熟悉图像的巴特沃斯滤波和理想低通滤波原理2.掌握图像的直方图计算的实现和直方图均衡化算法、图像的巴特沃斯滤波和理想低通滤波算法和应用二、实验任务1从电脑中读取一幅图片并显示2将读取的彩色图片转换为灰度图3计算灰度图的统计直方图并进行直方图均衡化以增强图像4. 对灰度图进行维纳滤波三、示例代码iname,ipath=uigetfile(*.jpg;*.bmp;*.tif;*.*,load image,);I=ipath,iname;image=imread(I);imshow(image); figure;igray=rgb2gray(image); %彩色图转换为灰度图imshow(igray,); figure;imhist(igray); %计算灰度图的统计直方图 figure;eq_igray=histeq(igray); %灰度统计直方图均衡化imshow(eq_igray); figure; %显示均衡化化后的直方图imhist(eq_igray);%巴特沃斯滤波和理想低通滤波iname,ipath=uigetfile(*.jpg;*.bmp;*.tif;*.*,load image,);I=ipath,iname;I1=imread(I);imshow(I1);title(原始图像);I1=rgb2gray(I1);figure;imshow(I1);I2=imnoise(I1,salt & pepper);figure;imshow(I2);title(噪声图像);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=2:N2d=sqrt(i-n1)2+(j-n2)2);h=1/(1+0.414*(d/d0)(2*n); %计算巴特沃斯低通滤波转换函数result1(i,j)=h*g(i,j);if(g(i,j)50) %进行理想低通滤波result2(i,j)=0;elseresult2(i,j)=g(i,j);endendendresult1=ifftshift(result1); %巴特沃斯低通滤波后反变换result2=ifftshift(result2); %理想低通滤波后反变换X2=ifft2(result1);X3=uint8(real(X2);figure;imshow(X3);title(Butterworth 滤波图像);X4=ifft2(result2);X5=uint8(real(X4);figure;imshow(X5);title(理想低通滤波器);实验四 图像的滤波恢复一、实验目的及要求1.熟悉图像恢复的基本原理2.熟悉图像的维纳滤波恢复原理2.掌握图像的维纳滤波恢复算法和应用二、实验任务1从电脑中读取一幅图片并显示2将读取的彩色图片转换为灰度图3人为对灰度图增加噪声4利用维纳滤波算法对噪声图像进行恢复以提高显示质量三、示例代码d=15; %设定长度h=zeros(2*d+1,2*d+1);h(d+1,1:2*d+1)=1/(2*d); %设定函数hiname,ipath=uigetfile(*.jpg;*.bmp;*.tif;*.*,load image,);I=ipath,iname;f=imread(I);imshow(f);f=rgb2gray(f);figure;imshow(f);m,n=size(f); %计算图像大小(尺寸)fe=zeros(m+2*d,n+2*d); %扩增ffe(1:m,1:n)=f;he=zeros(m+2*d,n+2*d);he(1:2*d+1,1:2*d+1)=h; %扩增hF=fft2(fe);H=fft2(he);ns=5*rand(m+2*d,n+2*d); %产生噪声g=ifft2(F.*H)+ns; %产生噪声且加载噪声的图像G=fft2(g);K=0; %设定K值F_est=(H.2)./(H.2+K).*G./H; %维纳滤波f_est=real(ifft2(F_est); %恢复后的图像imshow(f); 显示原始图像figure;imshow(g(d+1:m+d,d+1:n+d),min(g(:) max(g(:); %、显示模糊后加噪声的图像figure;imshow(f_est(1:m,1:n),min(f_est(:) max(f_est(:);%显示恢复后的图像实验五 图像的压缩编码一、实验目的及要求1.熟悉图像的压缩编码的基本原理和方法2.在MATLAB实现用离散余弦变换(DCT)对图像进行压缩编码2.在MATLAB实现用行程编码(RLE)对图像进行压缩编码二、实验任务1从电脑中读取一幅图片2利用DCT对图像进行压缩编码3利用RLE对图像进行压缩编码三、示例代码%DCT图像压缩编码iname,ipath=uigetfile(*.jpg;*.bmp;*.tif;*.*,load image,);IPATH=ipath,iname;I=imread(IPATH);I=rgb2gray(I); I=im2double(I); %将原图像转换为双精度数据类型T=dctmtx(8); %产生二维DCT变换矩阵B=blkproc(I,8 8,P1*x*P2,T,T); %计算二维DCT 矩阵T,转置T(函数p1*x*p2的参数)mask= 1 1 1 1 0 0 0 01 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0; %二值掩膜,用来压缩DCT系数,只保留DCT系数中左上角的10个B2=blkproc(B,8 8,P1.*x,mask); %只保留DCT变换的10个系数I2= blkproc(B2,8,8,P1*x*P2,T,T);
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号