资源描述:
《应用MATLAB软件提供的函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、应用MATLAB软件提供的函数,编制读取一幅TIF文件,并使其直方图均衡化,并存为另一幅TIF文件。显示均衡化前后的图像。使用MATLAB软件本身提供的直方图均衡化函数,并且比较均衡化前后的直方图。提示:使用imreadximrwrite、imshow、imhist、subplot等命令程序:i=imread(^cameraman.tif");%读入图像I;j=histeq(i);%将图像i进行直方图均衡化为图像j;subplot(1,2,1),imshow(i);subplot(1,2,2),imshow(j);%将图形窗口分成两个区域分别显示图像i,j;fig
2、ure,subplot(1,2,1),imhist(i),subplot(1,2,2),imhist(j);%新建一图形窗口,显示均衡化前后的灰度直方图;imwrite(j,^cameraman1.tif");%将图像j另存为文件cameramanl.tif;图偸图1图像的直方图均衡化图2直方图均衡化前后的直方图小结:直方图均衡化可将图像的灰度范围拉开,让灰度频率较小的灰度级变大,让灰度直方图在较大的动态范围内趋于一致.二.应用MATLAB软件提供的函数,编制读取两幅TIF文件I和J,并使其相加得到图像K1、使其相减得到图像K2,比较四幅图像的灰度直方图。提示:使
3、用imadd、imsubtrac等命令程序:I=imreadCvrice.tifvv);J=imread(,,cameraman.tif,f);%读取口尸文件■和J;K1=imadd(l,J);%将图像I和J相加得到图像K1;K2=imsubtract(l,J);%将图像I和J相减得到图像K2;subplot(2,2,1);inshow(l);subplot(2,2,1);imshow(l);subplot(2,2,2);imshow(J);subplot(2,2,3);>mshow(K1);subplot(2,2,4);imshow(K2);%在图形窗口显示图像
4、l,J,K15K2;subplot(2,2,1);imhist(l);subplot(2,2,2);imhist(J);subplot(2,2,3);imhist(K1);subplot(2,2,4);imhist(K2);%在图形窗口显示图像l,J,K15K2的灰度直方图;ffllEEjIEki图3图像的相加和相减g万图IR方IEJ图4原图,相加,相减后的灰度直方图比较小结:在使用IMADD函数时得到如下错误信息:???Functionimlincombexpecteditsarrayinputarguments(Al,A2,・・・)tobethesamesiz
5、e・Errorin==>imlincombat85Z=imlincombc(images,scalars,output_class):Errorin==>imaddat67Z=imlincomb(1.0,X,1.0,Y,output_class);根据提示,该函数使用时要求相加的两个鹵像大小需一致;我选择了三张尺寸为256*256的图像,它们的大小分别为43.5KB,63.7KB,2.67KB,其中使用2.67KB的图像时无法正常相加,出现上面的错误信息•使用IMSUBTRACT函数遇到相同的情况三、应用MATLAB软件提供的函数,编制读取一幅TIF文件I,并且使
6、其放大2倍得到图像J1、将I逆时针方向旋转60度得到图像J2,都采用双线性插值的方式。显示二图。提示:使用imresize、imrotate等命令程序:I=imread(,zpout.tif");%读取TIF文件I;Jl=imresize(I,2,'bilinear,);%采用双线性插值方式将图像I放大2倍得到图像J1;J2=imrotate(I,60,〃b订inear");%采用双线性插值方式将图像I旋转60oimshow(I);%显示图像I;figure,subplot仃,2,1),imshow(JI),subplot(1,2,2),imshow(J2);%新
7、建图像窗口显示图像JI,J2;图J1图J2图6采用双线性插值法进行2倍放大和60度旋转小结:双线性的输出象素值是它在输入图像中2*2领域采样点的平均值•从图中看出,处理后的图像更加平滑,但插值后的图像变模糊,损失了一些细节.