图像输入与输出基本操作一、实验题目:图像输入与输出操作二、实验目的学习在MATLAB环境下对图像文件的I/O操作,为读取各种格式的图像文件和后续进行图像处理打下基础。三、实验内容利用MATLAB为用户提供的专门函数从图像格式的文件中读/写图像数据、显示图像,以及查询图像文件的信息。四、预备知识熟悉MATLAB开发环境。五、实验步骤:(1)利用imread函数完成对图像文件的读取操作。源代码:I=imread('Couple.bmp');imshowCouple.bmp图像显示:(2)利用imwrite函数完成图像的写入(保存)操作。源代码:I=imread('Couple.bmp');imwrite(I,'111.bmp')图像显示:(3)利用imshow函数显示图像。源代码:I1=imread('lena.bmp');I2=imread('image1.jpg');I3=imread('Couple.bmp');I4=imread('image2.jpg');subplot(2,2,1),imshow(I1);subplot(2,2,2),imshow(I2);subplot(2,2,3),imshow(I3);subplot(2,2,4),imshow(I4);图像显示:在一个图形窗口中显示多幅图像源代码:I=imread('Couple.bmp');imshow(I);colorbar;图像显示:显示图像并加入颜色条从上图可知,该图像是数据类型为uint8的灰度图像,其灰度级范围从0-255。(4)利用imfinfo函数查询图像文件的有关信息。源代码:info=imfinfo('Couple.bmp')显示结果:info=Filename:'Couple.bmp'FileModDate:'29-Apr-200910:11:48'FileSize:66616Format:'bmp'FormatVersion:'Version3(MicrosoftWindows3.x)'Width:256Height:256BitDepth:8ColorType:'indexed'FormatSignature:'BM'NumColormapEntries:256Colormap:[256x3double]RedMask:[]GreenMask:[]BlueMask:[]ImageDataOffset:1078BitmapHeaderSize:40NumPlanes:1CompressionType:'none'BitmapSize:0HorzResolution:2834VertResolution:2834NumColorsUsed:0NumImportantColors:0图像平滑与滤波一、实验题目:图像平滑与滤波二、实验目的:在熟悉图像平滑的基本原理和方法的基础上,在理论指导下,能在MATLAB环境下对图像进行平滑处理。本实验要求用线性平滑滤波、中值平滑滤波、频域低通滤波的方法进行程序设计。经过平滑处理,对结果图像加以比较,得出自己的实验结论。三、实验内容:(1)利用MATLAB为用户提供的专门函数实现均值滤波。(2)利用MATLAB为用户提供的专门函数实现中值滤波。(3)编写频域理想低通、巴特沃斯低通及高斯低通滤波函数。四、预备知识:(1)熟悉平滑滤波原理。(2)熟悉频域滤波原理。(3)熟悉在MATLAB环境下对图像文件的I/O操作。五、实验步骤:(1)对给定的图像添加均值为0,方差分别为200、400的高斯噪声,以及概率分别为0.1、0.2的椒盐噪声,显示添加噪声后的图像。源代码:a)加入噪声强度为d=0.2的椒盐噪声:I=imread('Couple.bmp');J=imnoise(I,'salt&pepper',0.2);%给图像加入椒盐噪声subplot(1,2,1);imshow(I);title('原始图像');subplot(1,2,2);imshow(J);title('加入椒盐噪声的图像')图像显示:b)加入噪声强度为d=0.1的椒盐噪声:I=imread('Couple.bmp');J=imnoise(I,'salt&pepper',0.1);%给图像加入椒盐噪声subplot(1,2,1);imshow(I);title('原始图像');subplot(1,2,2);imshow(J);title('加入椒盐噪声的图像')图像显示:原始图像和加入椒盐噪声后的图像c)加入均值m=0,方差v=200的高斯噪声:I=imread('Couple.bmp');J=imnoise(I,'gaussian',0,200);%给图像加入高斯噪声subplot(1,2,1);imshow(I);title('原始图像');subplot(1,2,2);imshow(J);title('加入高斯噪声图像')图像显示:d)加入均值m=0,方差v=400的高斯噪声:I=imread('Couple.bmp');J=imnoise(I,'gaussian',0,400);%给图像加入高斯噪声subplot(1,2,1);imshow(I);title('原始图像');subplot(1,2,2);imshow(J);title('加入高斯噪声图像')图像显示:(2)对加噪图像分别进行3×3、5×5、9×9的均值滤波,显示并比较滤波结果。源代码:I=imread('Couple.bmp');J=imnoise(I,'salt&pepper',0.2);%给图像加入椒盐噪声h=fspecial('average',3);s=fspecial('average',5);p=fspecial('average',9);gd=imfilter(J,h);qw=imfilter(J,s);er=imfilter(J,p);subplot(2,2,1);imshow(J);title('加入椒盐噪声的图像');subplot(2,2,2);imshow(gd);title('3*3模板均值滤波');subplot(2,2,3);imshow(qw);title('5*5模板均值滤波');subplot(2,2,4);imshow(er);title('9*9模板均值滤波');图像显示:(3)对加噪图像分别进行3×3、5×5、9×9的中值滤波,显示并比较滤波结果。源代码:I=imread('Couple.bmp');J=imnoise(I,'salt&pepper',0.2);%给图像加入椒盐噪声%h=fspecial('average',3);%s=fspecial('average',5);%p=fspecial('average',9);gd=medfilt2(J,[33]);qw=medfilt2(J,[55]);er=medfilt2(J,[99]);subplot(2,2,1);imshow(J);title('加入椒盐噪声的图像');subplot(2,2,2);imshow(gd);title('3*3模板中值滤波');subplot(2,2,3);imshow(qw);title('5*5模板中值滤波');subplot(2,2,4);imshow(er);title('9*9模板中值滤波');图像显示:(4)对加噪图像进行截止频率D0分别为10、25的理想低通、巴特沃斯低通及高斯低通滤波,显示并比较滤波结果。理想低通源代码:I=imread('lena.bmp');I=imnoise(I,'gaussian');[f1f2]=freqspace(size(I),'meshgrid');%生成频率序列矩阵Hd=ones(size(I));%构造低通滤波器大小r=sqrt(f1.^2+f2.^2);%构造低通滤波器决策函数Hd(r0.5)=0;%构造低通滤波器Y=fft2(double(I));%对图像I进行Fourier变换Y=fftshift(Y);%频谱平移Ya=Y.*Hd;%低通滤波Ya=ifftshift(Ya);%反变换Ia=ifft2(Ya);imshow(I);%输出title('加噪图像');figure(2);imshow(uint8(Ia));title('理想低通滤波后图像');%保存结果imwrite(uint8(Ia),'after_lvbo','bmp');显示结果:巴特沃斯低通滤波:源代码:D0=10%Butterworth低通滤波器I=imread('Couple.bmp');I=imnoise(I,'salt&pepper',0.2);[f1f2]=freqspace(size(I),'meshgrid');D=10;%截止频率n=4;Hd=ones(size(I));r=sqrt(f1.^2+f2.^2);fori=1:size(I,1);forj=1:size(I,2);t=r(i,j)/(D*D);Hd(i,j)=1/(t^n+1);%构造滤波函数endendY=fft2(double(I));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=ifft2(Ya);figure(1);imshow(I);title('加噪后图像');figure(2);imshow(uint8(Ia));title('butterworth滤波后图像');显示结果:源代码:D0=25%Butterworth低通滤波器I=imread('Couple.bmp');I=imnoise(I,'salt&pepper',0.2);[f1f2]=freqspace(size(I),'meshgrid');D=25;%截止频率n=4;Hd=ones(size(I));r=sqrt(f1.^2+f2.^2);fori=1:size(I,1);forj=1:size(I,2);t=r(i,j)/(D*D);Hd(i,j)=1/(t^n+1);%构造滤波函数endendY=fft2(double(I));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=ifft2(Ya);figure(1);imshow(I);title('加噪后图像');figure(2);imshow(uint8(Ia));title('butterworth滤波后图像');图像显示:图像增强一、实验题目:图像增强二、实验目的:(1)了解图像增强的内容和意义;(2)掌握基于空域的图像增强方法;(3)掌握基于频域的图像增强方法。三、实验内容:(1)综合运用直方图均衡、灰度变换、锐化空域滤波等方法编程实现对图像的空域增强处理;(2)编程实现图像的频域增强处理。四、预备知识:(1)熟悉MATLAB图像输入输出操作;(2)熟悉图像的模板操作;(3)熟悉图像的频域变换处理;(4)熟悉二维频谱的显示方法。五、实验步骤:(1)读入图像;(2)针对图像特点设计方案,综合运用直方图均衡、灰度变换、锐化滤波等空域增强方法编程实现对图像的增强处理;(3)编程实现频域增强处理。源代码:clcclearallimage=imread('Couple.bmp');figure(1);subplot(221);imhist(image);title('原始图像直方图');subplot(222);imshow(image);title('原始图像');b=histeq(image,256);%将直方图均衡化为256级subplot(223);imhist(b);title('均衡化后的直方图');subplot(224);imshow(b);title('直方图均衡图像增强后效果');图像显示:图像灰度调整:源代码:Im=imread('Couple.bmp');J=imadjust(Im,[0.30.7],[01]);subplot(2,2,1);imshow(Im);title('原图')