学习在 MATLAB 环境下对图像文件的基本操作,为读取各种格式的图像文件和后续进行的图像处理打下基础。
实验内容
读出MATLAB 目录下图像文件并进行旋转、加亮、取反、多幅图片显示等操作。
将MATLAB 目录下图像文件读出,显示它的图像及灰度直方图并进行直方图衡化。
实验结果
读取和显示I=imread('rice.tif');imshow(I);
加亮I=imread('rice.tif');K=I+80;imshow(K);
取反I=imread('rice.tif');J=imcomplement(I);imshow(J);
翻转I=imread('rice.tif');K=imrotate(I,45);imshow(K);
图片信息whos I
图片大小I=imread('rice.tif');size(I);[M,N] = size(I);
彩色到黑白I=imread('lene.jpg');K=rgb2gray(I);subplot(1,2,1),imshow(I);title('原始图像')subplot(1,2,2),imshow(K);title('黑白图像')
直方图均衡化I=imread('rice.tif');subplot(2,2,1),imshow(I)title('原始图像')subplot(2,2,3),imhist(I)title('原始图像直方图')a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像')subplot(2,2,4),imhist(a)title('均衡化后图像直方图')
小结
在后续的图像处理中,size()函数在图像点运算,比如域值化以及线性处理中有特别作用。subplot(,),imshow()函数用于多幅图像的显示,而单独显示则使用figure,imshow()。
直方图是灰度级数的函数,反映了图像中具有该灰度级数的像素的个数。直方图均衡化就是把原图像的灰度直方图从比较集中的某个区间变成在全部灰度范围内的均匀分布。均衡化后图像的像素重新分配,使一定会度范围内的像素数量大致相同。图像的亮度变得更亮了,增强了图像的整体效果。
均衡化后直方图趋于平坦化,灰度间隔(动态范围)拉大,对比度加强,图像清晰,便于读取、分析和处理。