您好,欢迎访问三七文档
实验一数字图像的基本操作与代数运算1.对各RGB图像、索引图像、灰度图像,用imread读出图像文件,并用imshow将图像显示出来,并用iminfo给出图像信息。观察一下图像数据的特点,理解数字图像在MATLAB中的处理就是处理一个矩阵,根据图像文件信息和图像数据矩阵的特点,确定图像的类型,体会各自数据的特点。x=imread('RGBimageD.tiff')imshow(x)imfinfo('RGBimageD.tiff')2.选择一幅RGB彩色图像(图像RGBimageA),分别显示出原图像和R、G、B三个分量图像(用subplot函数显示在同一窗口中),观察对比它们的特点,体会不同颜色所对应的R、G、B分量的不同之处。subplot(2,2,1),imshow(y),title('原图像');subplot(2,2,2),imshow(y(:,:,1)),title('R分量');subplot(2,2,3),imshow(y(:,:,2)),title('G分量');subplot(2,2,4),imshow(y(:,:,3)),title('B分量');3.将图像A中心部分选取出来,显示中心部分,并保存为与图像A相同格式的图像文件。y=imread('RGBimageA.tiff')A1=imcrop(y,[100,100,300,300]);subplot(1,2,1),imshow(y),title('原图像');subplot(1,2,2),imshow(A1),title('图像A的中心部分');imwrite(A1,'A1.tiff','tiff')4.选择一幅RGB图像(图像RGBimageB),使用imread和imwrite进行图像文件格式的相互转换(TIFF与JPG相互转换)。z=imread('RGBimageB.tiff','tiff')imwrite(z,'RGBimageB.jpg','jpg')5.给灰度图像加入高斯噪声,并显示。运用for循环,分别将5幅、50幅和500幅加有随机高斯噪声的图像进行相加并求其平均值。将几种求平均后的图像显示在同一图像对话框中,比较其结果。[I,M]=imread('eight.tif');J=imnoise(I,'gaussian',0,0.02);subplot(1,2,1),imshow(I,M),title('原图像');subplot(1,2,2),imshow(J,M),title('加噪声后图像');[m,n]=size(I);K=zeros(m,n);fori=1:100J=imnoise(I,'gaussian',0,0.02);J1=im2double(J);K=K+J1;endK=K/100;%求图像的平均figure;imshow(K),title('相加求平均后的图像');6.自行下载两幅的图像,进行相加、相减、相乘的代数运算(注意运算时候图像的尺寸、类型等,如果不同,应将尺寸较大的图像裁剪或缩放),显示运算之前和运算之后的图像。四种图像处理代数运算的数学表达式如下:(,)(,)(,)CxyAxyBxy(,)(,)(,)CxyAxyBxy(,)(,)(,)CxyAxyBxy(,)(,)(,)CxyAxyBxy其中A(x,y)和B(x,y)为输入图像,而C(x,y)为输出图像。7.选择一幅索引图像,将图像文件读出,并将这个图像显示出来。尝试修改MAP颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。(选做)[X,MAP]=imread('flowers.tif','tif');MAP1=MAP+MAP;subimage(X,MAP1);实验二图像的灰度变换与空域滤波1.显示图像A及其灰度直方图。用imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别;改变灰度值调整范围,观察调整后的图像的变化及其与原图像的差别,调整后的灰度直方图的变化及其与原灰度直方图的区别;进一步利用改变灰度值调整范围,实现图像的反转。X=imread('A.tif');Y=imadjust(X,[0.20.8],[]);Z=imadjust(X,[],[1,0]);subplot(3,2,1),imshow(X),title('图像A');subplot(3,2,2),imhist(X),title('原图像的灰度直方图');subplot(3,2,3),imshow(Y),title('调整后的图像A');subplot(3,2,4),imhist(Y),title('调整后的灰度直方图');subplot(3,2,5),imshow(Z),title('反转后的图像A');subplot(3,2,6),imhist(Z),title('反转后的灰度直方图');2.读取灰度图像B,用histeq函数将原始图像的灰度直方图均衡化,同时观察均衡化后的图像与前面图像的差别,均衡化后的灰度直方图与前面的灰度直方图的区别。I=imread('B.tif');J=histeq(I);subplot(2,2,1),imshow(I),title('图像B');subplot(2,2,2),imhist(I,64),title('图像B的直方图');subplot(2,2,3),imshow(J),title('均衡化的图像B');subplot(2,2,4),imhist(J,64),title('均衡化图像B的直方图');3.给图像C加入高斯噪声,分别采用不同大小的模板对加有噪声的图像进行均值滤波,用一个图像处理对话框(subplot)显示原图像、加有噪声的图像及均值滤波的图像。比较结果。X=imread('C.tif');Y=imnoise(X,'gaussian',0,0.005);Z1=filter2(fspecial('average',3),Y)/255;Z2=filter2(fspecial('average',5),Y)/255;Z3=filter2(fspecial('average',7),Y)/255;Z4=filter2(fspecial('average',9),Y)/255;subplot(2,3,1),imshow(X),title('图像C');subplot(2,3,2),imshow(Y),title('加入高斯噪声的图像C');subplot(2,3,3),imshow(Z1),title('均值滤波模版尺寸为3');subplot(2,3,4),imshow(Z2),title('均值滤波模版尺寸为5');subplot(2,3,5),imshow(Z3),title('均值滤波模版尺寸为7');subplot(2,3,6),imshow(Z4),title('均值滤波模版尺寸为9');4.分别采用不同大小的模板对上述加有噪声的图像进行中值滤波,用一个图像处理对话框(subplot)显示原图像、加有噪声的图像及中值滤波的图像。比较结果。X=imread('C.tif');Y=imnoise(X,'gaussian',0,0.005);I1=medfilt2(Y,[3,3]);I2=medfilt2(Y,[7,7]);subplot(2,2,1),imshow(X),title('图像C');subplot(2,2,2),imshow(Y),title('加入高斯噪声的图像C');subplot(2,2,3),imshow(I1),title('3×3模版');subplot(2,2,4),imshow(I2),title('7×7模版');实验三图像的频域处理1.读取图像A(lena.tiff)和B(rice.tif),显示这两幅图像,对图像作傅立叶变换,显示图像的傅里叶幅度谱和相位谱。做傅立叶逆变换,显示重建图像,看是否与原图像相同。A=imread('lena.tiff');B=imread('rice.tif');I=fftshift(fft2(A));J=fftshift(fft2(B));subplot(2,3,1),imshow(A);subplot(2,3,2),imshow(log(1+abs(I)),[]);subplot(2,3,3),imshow(angle(I));subplot(2,3,4),imshow(B);subplot(2,3,5),imshow(log(1+abs(J)),[]);subplot(2,3,6),imshow(angle(J));X=ifft2(I);Y=ifft2(J);subplot(2,3,1),imshow(A),title('图像A');subplot(2,3,2),imshow(log(1+abs(I)),[]),title('二维傅里叶变换');subplot(2,3,3),imshow(log(abs(X)),[]),title('逆变换后图像');subplot(2,3,4),imshow(B),title('图像B');subplot(2,3,5),imshow(log(1+abs(J)),[]),title('二维傅里叶变换');subplot(2,3,6),imshow(log(abs(Y)),[]),title('逆变换后图像');2.设计一个简单的巴特沃斯低通滤波器(截止频率自选),对图像A作频域低通滤波,再作反变换,观察两种不同的截止频率下反变换后的图像与原图像的区别。A=imread('lena.tiff');PQ=paddedsize(size(A));D0=0.01*PQ(1);H=lpfilter('btw',PQ(1),PQ(2),D0);g=dftfilt(A,H);subplot(1,2,1),imshow(A),title('原图像');subplot(1,2,2),imshow(g,[]),title('D0较小的滤波');A=imread('lena.tiff');PQ=paddedsize(size(A));D0=0.08*PQ(1);H=lpfilter('btw',PQ(1),PQ(2),D0);g=dftfilt(A,H);subplot(1,2,1),imshow(A),title('原图像');subplot(1,2,2),imshow(g,[]),title('D0较大的滤波');3.(选做内容)设计一个高斯高通滤波器(截止频率自选),对图像B作高频增强滤波,再作反变换,观察两种不同的截止频率下反变换后的图像与原图像的区别。B=imread('rice.tif');PQ=paddedsize(size(B));D0=0.01*PQ(1);HBW=hpfilter('gaussian',PQ(1),PQ(2),D0,2);H=0.5+2*HBW;g=dftfilt(B,H);subplot(1,2,1),imshow(B),title('原图像');subplot(1,2,2),imshow(g,[]),title('D0较小的滤波');B=imread('rice.tif');PQ=paddedsize(size(B));D0=0.1*PQ(1);HBW=hpfilter('gaussian',PQ(1),PQ(2),D0,2);H=0.5+2*HBW;g=dftfilt(B,H);subplot(1,2,1),imshow(B),title('原图像');subplot(1,2,2),imshow(g,[]),title('D0较大的滤波');实验四图像复原利用imnoise3对图像I进行加入参数为C=[032;064;1616;320;640;-1616]的周期噪声,得到图像J。对含噪图像J进行陷波滤波图像复原。要求列出各个步骤的运行代码。显示I,J,差分图像I-I'。显示I、J、以及噪声的频谱。img=im
本文标题:数图各实验代码
链接地址:https://www.777doc.com/doc-2387611 .html