matlab绘制图像的直方图、杆状图和折线图等

1.imhist函数:

h=imhist(f,b)

其中,f为输入图像,h是该图像的直方图数据,b是用来形成直方图的“容器”数目,即把所有灰度级分成几份的数量(b默认为256)。若按上面一行代码中使用imhist函数,则并不会画出图像对应的直方细杆图,而是得到直方图数据的一个向量(h)。若要画出直方细杆图,则要写成这种形式:

imhist(f,b)

就会直接画图了。

2.bar函数:

bar(horz,z,width)

上述形式就可直接绘制直方条形图,其中参数z是一个包含将被绘制的点的行向量,即对应上面imhist函数得到的h;horz是一个与z同维数的向量,对应水平刻度,若horz省掉,水平轴会从0-length(z)等分为若干个单位;witdth是一个介于0和1之间的数,默认为0.8,对应条形的宽度。

3.stem函数:

stem(horz,z,'LineSpec')

上述形式就可直接绘制直方细杆图,其中参数horz、z和bar函数中的一样;LineSpec是对应下表的一个三元组:

LineSpec对应的三元组表
颜色说明符 线型说明符 标记点说明符
符号 颜色 符号 线型 符号 标记
m 深红 -. 虚点线 h 六角星
y : 点线 p 五角星
c -- 虚线 < 左指三角形
b - 实线 > 右指三角形
g 绿 v 下指三角形
r ^ 上指三角形
w d 菱形
k s 方形
\times
.
* 星号
o
+ 加号

例如,当LineSpec=’y-o‘,生成的杆状图其线条和标记点都是黄色,线条为实线,标记点为圆。若LineSpec='fill',则默认颜色为蓝色,线条为实线,标记点为圆。

4.plot函数:

plot(horz,z,'LineSpec')

上述形式就可直接绘制直方折线图,其参数与上述几个函数对应的相同参数意义一致。

四种函数画直方图的演示代码如下:

img=imread('e.jpg');
figure1=figure;
imshow(img)%展示原始图像

%绘制细杆状图
figure2=figure;
subplot(121)
imhist(img)%得到每一个灰度级对应的像素点个数组成的向量,并画出来对应的细杆状图
subplot(122)
imhist(img,50)

%绘制直方图
h=imhist(img,20); %将0-255的灰度值分成20分
horz=linspace(0,255,20);
figure3=figure;
bar(horz,h)


%绘制杆状图
figure4=figure;
stem(horz,h,'fill')

%绘制折线图
figure5=figure;
plot(horz,h,'b-o')

结果如下:

matlab绘制图像的直方图、杆状图和折线图等_第1张图片

 matlab绘制图像的直方图、杆状图和折线图等_第2张图片

 matlab绘制图像的直方图、杆状图和折线图等_第3张图片

 matlab绘制图像的直方图、杆状图和折线图等_第4张图片

 

感谢阅读!

你可能感兴趣的:(matlab数字图像处理,matlab,开发语言,图像处理)