资源描述:
《数字图像处理实验作业.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一读取一幅图像,完成如下操作,并存储变换后的图像(1)把图像翻转90度,并显示(2)缩小图像为原图像的1/2(3)镜像图像原图像:clc;clf;clear;f=imread('D:matlabpicture.jpg');%读取D盘中matlab文件夹中名字为picture的格式为jpg的图片figure,imshow(f)k=imrotate(f,90);%正数表示逆时针旋转,负数表示顺时针旋转figure,imshow(k)imwrite(k,'D:matlabk.jpg');%保存逆时针旋转90度后的图像逆时针旋转90度后图像:x=0.5;%横向放2
2、倍。如果想缩2倍就把x改为0.5即可,即变为0.5倍y=0.5;%纵向放2倍。如果想缩2倍就把y改为0.5即可,即变为0.5倍T1=maketform('affine',[x00;010;001]);T2=maketform('affine',[100;0y0;001]);I1=imtransform(k,T1);I2=imtransform(I1,T2);figure,imshow(I2)imwrite(I2,'D:matlabI2.jpg');%保存缩小为原来1/2的图像缩小图像为原图像的1/2img=rgb2gray(I2)%取图像I2的灰度图像subplo
3、t(1,2,1),imshow(img);%水平镜像[m,n]=size(img);p=1:m;q=1:n;z(p,n-q+1)=img(p,q);subplot(1,2,2),imshow(z);imwrite(z,'D:matlabz.jpg');%保存镜像后的图像镜像后的图像:实验二读取一幅彩色图像,并将图像转化为二值图像,在一张图表上,显示原始图像,灰度图像,二值图像。原图像:clc;clf;clear;f=imread('D:matlabpicture.jpg');%读取D盘中matlab文件夹中名字为picture的格式为jpg的图片A=im2bw
4、(f);%取图像的二值图像m=islogical(A)%检测A是否为二值数组,如果是m=1,反之m=0.img=rgb2gray(f)%取原图像的灰度图像subplot(1,3,1),imshow(f),title('原图像');subplot(1,3,2),imshow(img),title('灰度图像');subplot(1,3,3),imshow(A),title('二值图像');实验三任意选择一幅图像,绘制图像的直方图clc;clf;clear;f=imread('D:matlabpicture.jpg');%读取D盘中matlab文件夹中名字为pictu
5、re的格式为jpg的图片%计算灰度图象的直方图数据L=256;%灰度级Ps=zeros(L,1);%统计直方图结果数据nk=zeros(L,1);[row,col]=size(f);n=row*col;%总像素个数fori=1:rowforj=1:colnum=double(f(i,j))+1;%获取像素点灰度级nk(num)=nk(num)+1;%统计nkendend%计算直方图概率估计fori=1:LPs(i)=nk(i)/n;endfigure;subplot(3,1,1);imshow(f),title('原图');subplot(3,1,2),plot(nk
6、),title('直方图(nk)');subplot(3,1,3),plot(Ps),title('直方图(Ps)');实验四构造一幅黑白二值图像,在128*128的黑色背景中心产生一个4*4的白色方块,完成下列操作:(1)对图像作傅里叶变换,显示频域振幅图像(2)对原始图像进行运动模糊,显示其频谱图%构造一幅黑白二值图像,在128*128的黑色背景中心产生一个4*4的白色方块clc;clear;L=128;A=zeros(128,128);form=63:66forn=63:1:66;A(m,n)=1;endendclf;subplot(1,3,1),imshow(
7、A),title('原图像');%显示该图像k=fftshift(fft2(A));s=ifft2(k);subplot(1,3,2),plot(abs(s)),title('二维傅立叶变换')subplot(1,3,3),imshow(s,[]),title('逆变换后的图像')对原始图像‘A’做水平,长度为20像素的匀速直线运动模糊。实验五读入一幅图像,按下列要求完成MATLAB实验(1)分别模拟生成运动模糊、散焦模糊图像(2)对模糊图像进行逆滤波法和维纳滤波复原(3)显示复原结果,比较算法的不同点clc;clf;clear;f=imread('