1、数字图像处理实验班级:通信一班学号:*姓名:*实验部分:实验一:图像的基本操作处理1、目的:熟悉MATLAB中图像处理工具箱,实践图像基本处理操作,掌握相关函数调用及其参数设置方法,查看实际效果。2、具体内容:1)、读入目标图像,赋给变量I;I=imread(my.jpg);2)、查看图像的基本信息; info=imfinfo(my.jpg)info = Filename: my.jpg FileModDate: 16-Sep-2012 08:19:40 FileSize: 12913 Format: jpg FormatVersion: Width: 194 Height: 139 BitD
2、epth: 24 ColorType: truecolor FormatSignature: NumberOfSamples: 3 CodingMethod: Huffman CodingProcess: Sequential Comment: 3)、查看图像在内存中的情况; whos Name Size Bytes Class Attributes I 139x194x3 80898 uint8 info 1x1 1884 struct 4)、对图像进行缩放处理(imresize),放大1.5倍,并在当前空间下存储名称为exp11的图片;J=imresize(I,1.5); imwrite(
3、J,exp11.jpg); 5)、对放大图像进行30的旋转(imrotate), 并在当前空间下存储名称为exp12的图片;B=imrotate(J,30); imwrite(B,exp12.jpg); 6)、分别给原始图像和变换后图像赋予相应的标题名称(输入图片为原图像;输出图像为放大1.5倍图像,旋转30图像),并在同一个窗口中同时显示几幅图片,进行比较;subplot(2,2,1),subimage(I);title(原图像);subplot(2,2,2),subimage(J);title(放大1.5倍图像);subplot(2,2,3),subimage(B);title(旋转30图
4、像); 7)、将工作空间中的变量保存为exp13.mat文件,同时写出将该文件重新装入工作空间的语句;save(exp13);load exp13;8)、给原图像增加颜色条显示;imshow(I);colorbar;9)、利用imcrop函数通过交互方式将图像中人脸区域剪切提取出来,存为名称为face的新的图像;A=imcrop(I)imshow(A)imwrite(A,face.jpg);10)将原始图片分别转换成灰度图像、HSV色彩空间下的图像和二值图像,并在同一窗口中比较。C=rgb2gray(I); imshow(C)D=rgb2hsv(I); imshow(D) E=im2bw(I,
5、0.5); imshow(E)subplot(2,2,1),subimage(C);title(灰度图像);subplot(2,2,2),subimage(D);title(HSV);subplot(2,2,3),subimage(E);title(二值图像);3、实验报告要求:1)、列出具体的实验过程(处理函数及对应的结果);2)、进行必要的结果分析;3)、给出相关的结论或心得。另注:要求原始图像采用包含自己头像的照片,图片大小控制在640480大小之内,并将每一步显示的结果附在语句的下方。实验二:图像灰度统计特性及其相关变换1、目的:利用图像统计特性,了解直方图的形成原理,并根据实际要求对
6、其进行相关操作,以改善视觉效果。2、具体内容:1)、读入RGB目标图像,赋给变量M;M=imread(my.jpg);2)、返回选定图像像素点的颜色值(impixel);F=impixel(M)F = 215 185 1593)、将原图像转换成灰度图像,赋给变量N; N=rgb2gray(M);imshow(N) 4)、根据直方图定义,通过编程方式给出像素点统计形式的直方图,并与利用imhist函数获得的直方图在两个不同窗口中进行比较; imhist(N); m,n=size(N); C=zeros(1,256); for i=1:mfor j=1:nC(N(i,j)+1)=C(N(i,j)+
7、1)+1;endend figure(2);bar(C,0.00)5)、通过编程方式给出概率形式的直方图;/6)、利用对比度调整方法来改善图像质量;imadjustF=imadjust(N);imshow(F) 7)、通过直方图均衡化原理编程和函数调用(histeq)两种方式,实现图像的均衡化处理,并比较处理的结果;/G=histeq(N);imshow(G) 8)、将图像转换成二值图像,设定相应的阈值,进行分割处理,并比较果;H=im2bw(N,0.5);I=im2bw(N,0.2);J=im2bw(N,0.9);subplot(2,2,1),subimage(H);subplot(2,2,
8、2),subimage(I);subplot(2,2,3),subimage(J);%越大越黑; 9)、通过编程方式对转换后的图像N实施分段灰度变换处理,相关变换公式为:/I=imread(my.jpg); figure %subplot(2,2,1) imshow(I) f0=0;g0=0; f1=20;g1=10; f2=180;g2=230; f3=255;g3=255; figure,plot(f0,f1,f2,f3,g0,g1,g2,g3) title(linear transformation); r1=(g1-g0)/(f1-f0); %第一段斜b1=g0-r1*f0; %第一段
9、y轴截距 r2=(g2-g1)/(f2-f1); %第二段斜率 b2=g1-r2*f1; %第二段y轴截距 r3=(g3-g2)/(f3-f2); %第三段斜率 b3=g2-r3*f2; %第三段y轴截距 m,n=size(I); x2=double(I); for i=1:m for j=1:n f=x2(i,j); g(i,j)=0; if(f=f1)&(f=f2)&(f K=imfilter(O,a); A=imfilter(N,b); b=imfilter(O,b);subplot(2,2,1),subimage(J);subplot(2,2,2),subimage(K);subplo
10、t(2,2,3),subimage(A);subplot(2,2,4),subimage(b);P=filter2(fspecial(average,3),N)/255;imshow(P)R=filter2(fspecial(average,3),O)/255;figure;imshow(R) 4)、用33模板分别对高斯噪声和椒盐噪声图像进行均值滤波和中值滤波,并在同一窗口显示结果,结合原理分析两种方法的差异,并给出两种方法的适用范围;P=filter2(fspecial(average,3),O)/255;R=filter2(fspecial(average,3),O)/255;S=medf
11、ilt2(N);T=medfilt2(O);subplot(2,2,1),subimage(P);subplot(2,2,2),subimage(R);subplot(2,2,3),subimage(S);subplot(2,2,4),subimage(T);5)、以sobel算子为例,采用它的两个模板,对加入高斯噪声的图像进行锐化处理并查看处理效果,分析其处理过程和处理的特点;h3=fspecial(sobel);U=filter2(h3,N);imshow(U)6)、分别用prewitt和拉普拉斯算子图像进行锐化处理,比较处理效果并分析原因。h4=fspecial(prewitt);V=f
12、ilter2(h4,N); imshow(V)h5=fspecial(laplacian);W=filter2(h5,N);imshow(W)实验四:边缘检测1、目的:利用相关函数,实现图像的边缘检测,为进一步分析图像提供预处理。2、要求:利用不同的算子,并设定不同的参数,来得到图像边缘检测,并进行比较分析。edge3、具体内容:1)、robert算子; 2)、sobel算子;3)、LoG算子; 4)、prewitt算子;5)、canny算子;6)、利用33模板实现对图像的平均滤波处理(要求:自己编程,实现操作,给出相关结果)。另注:相关算子可到工具箱内查询其具体操作,及参数设定情况。 自编程
13、序时要求每段给出说明。BW1=edge(Q,roberts); BW2=edge(Q,sobel);BW3=edge(Q,log);BW4=edge(Q,prewitt);BW5=edge(Q,canny);subplot(3,2,1),subimage(BW1);subplot(3,2,2),subimage(BW2);subplot(3,2,3),subimage(BW3);subplot(3,2,4),subimage(BW4);subplot(3,2,5),subimage(BW5);实验五:频域变换1、目的:从频域角度来分析图像,熟悉频域变换及其特点。2、具体内容:1)、读入目标图像
14、;2)、进行傅里叶变换,查看频谱效果(分别用幅度和幅度对数);M=imread(my.jpg); Q=rgb2gray(M);N=100; f=zeros(50,50); f(15:35,23:28)=1;figure; F=fft2(f,N,N); imshow(abs(F) H=fft2(f,N,N); imshow(log(abs(F)3)、进行中心平移处理(M/2,N/2);I=fftshift(F);imshow(log(abs(I)4)、对原始图像进行离散余弦变换;J=dct2(Q);imshow(log(abs(J)5)、比较两者效果,并分析原因;/6)、利用逆变换还原图像,并进行比较。K=idct2(J);imshow(K,0 255)7)、利用subplot(m,n,p)函数显示多幅图片。subplot(3,2,1),subimage(abs(F);subplot(3,2,2),subimage(log(abs(F);subplot(3,2,3),subimage(log(abs(I);subplot(3,2,4),subimage(log(abs(J);subplot(3,2,5),subimage(K,0 255);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1