Matlab实现图像灰度图,绘制直方图,直方图均衡化
1.imread()
MATLAB中图像读取函数与OpenCV一样是imread,可以打开指定路径图片,其路径表示方式与OpenCV中有些许不同如:
srcImage=imread('E:\MatlabWorkSpace\实验一\实验一图一.png');
路径符号为单"\",Opencv为双"\",其函数原型为:
A=imread(filename,fmt);
2.将打开的图像转换为灰度图rgb2gray
grayImage=rgb2gray(srcImage);
3.imwrite
保存图片,一定要注明图片格式如jpg,bmp,png等。原型如下:
imwrite(A,filename,fmt);
保存图片时可指定图片保存路径。如
imwrite(grayImage,'E:\MatlabWorkSpace\实验一\grayImage.jpg');
4.imhist
绘制图像直方图函数,直方图绘制后可直接显示,不需要用imshow进行显示。如:
imhist(grayImage);
5.imfinfo
读取图片信息包括Height、Width、Format、ColorType等信息,可利用此函数判断函数为彩图还是灰度图.如:
info=imfinfo('E:\MatlabWorkSpace\实验一\grayImage.jpg');
***此处貌似必须先将要读取的图片保存下来,之后指定图像所在路径,初学没发现其他方法,欢迎指正。
6.subplot
将图片放到一个窗口,需指定三个参数,原型如下:
subplot(m n p)
m、n、p分别代表该窗口中图像排列的行数、列数以及第几幅图片
可结合title使用
7.adapthisteq()
图像直方图均衡化
H1=adapthisteq(grayImage);
8.imadjust()
该函数用于调节灰度图像的亮度或彩色图像的颜色矩阵。用法如下:
J=imadjust(I);
将灰度图像I中的亮度值映射到J中的新值,使得图像中1%的数据饱和至最低和最高亮度,这可以增加输出图像J对比度值,此用法相当于imadjust(I,stretchlim(I))
J=imadjust(I,[low_in,hing_in],[low_out,high_out])
将图像I中的亮度值映射到J中的新值即将low_in至high_in之间的值映射到low_out至high_out之间的值.low_in以下与high_in以上的值被剪切掉了,也就是说low_in以下的值映射到low_out,high_in以上的值映射到high_out。它们都可以使用空的矩阵[],默认值是[0 1]
low_in、high_in、low_out、high_out的值均在0~1之间,可由已知值除以255算出值。例如low_in为100则,该位置应为:100/255=0.392
J=imadjust(I,[low_in,hing_in],[low_out,high_out],gamma)
其中gamma指定描述值I和J关系的曲线形状。如果gamma小于1,此映射偏重更高数值(明亮)输出,如果gamma大于1,此映射偏重更低数(灰暗)输出,如果省略此参数,默认为(线性映射).如图
示例代码:
%加载第一幅图像对其进行处理
srcImage=imread('E:\MatlabWorkSpace\实验一\实验一图一.png');
%转化成灰度图
grayImage=rgb2gray(srcImage);
imwrite(grayImage,‘E:\MatlabWorkSpace\实验一\grayImage.jpg’);
info=imfinfo(‘E:\MatlabWorkSpace\实验一\grayImage.jpg’);
%[M,N]=size(grayImage);
%在窗口中显示2*2排列图像
subplot(2,3,1);
imshow(grayImage);
title(‘原图像灰度图’);
%绘制灰度直方图
subplot(2,3,2);
imhist(grayImage);
title(‘灰度直方图’);
%[M,N]=size(hist);
%对灰度直方图均衡化处理
subplot(2,3,3);
H1=adapthisteq(grayImage);
imhist(H1);
title(‘直方图均衡化’);
%调整图像灰度等级
%原图像灰度集中10~120,调整到100~200
dstImage=imadjust(grayImage,[0.039,0.470],[0.392,0.784],0.6);
subplot(2,3,4);
imshow(dstImage);%显式调整后图像
title(‘灰度级调整后’);
subplot(2,3,5);
imhist(dstImage);
title(‘灰度调整后直方图’);
运行结果如图所示:
上一篇: centos yum 错误修复
下一篇: mysql数据库设计中的14个技巧(转)