计算并绘制图像的直方图:
(a)imhist (b)bar (c)stem (d)plot
(a)imhist
>>imhist(f); #没有输出规定的imhist
利用默认值256得出的直方图。
(b)bar (条形图绘制:产生水平轴以10个等级为一组的条形图)
>>h = imhist(f, 25) ;
>>horz = linspace(0, 255, 25);
>>bar(horz, h)
>>axis([0 255 0 60000])
>>set(gca, 'xtick', 0:50:255)
>>set(gca, 'ytick', 0:20000:60000)
bar函数:
horz为水平增量,z为对应的垂直量,width为介于0与1之间的数
若horz被省略,水平轴会从0至length(z)等分若干个单位。当width为1,数值条比较明显;为0时,竖条为垂直线,默认为0.8。相对于a中在灰度高端出现的窄峰值,b的条形图中下降了。
axis([0 255 0 60000])用于拓展垂直轴的低端的范围,设置了水平轴和垂直轴的最大最小数值,语法:
最后两条语句中,gca用于最终显示图形的轴,xtick和ystick设置显示水平轴和垂直轴标尺。
利用title函数可以给图像加入标题,将显示在图像上部中央:
titlestring为字符串
(c)stem 杆状图
>>h = imhist(f, 25) ;
>>horz = linspace(0, 255, 25);
>>stem(horz, h, 'fill')
>>axis([0 255 0 60000])
>>set(gca, 'xtick', 0:50:255)
>>set(gca, 'ytick', 0:20000:60000)
horz,z同上,lineSpec,fill如下
linsSpec为三元数组:
例如stem(horz, h, 'r--p')会生成一副杆状图,线条和标记点都是红色的,线条为虚线,标记点为五角星。
如果使用了fill,则标记点使用三元组中第一个元素:蓝色,实线,圆圈。
(d)plot将一组点用直线连接
>>h = imhist(f) ;
>>plot(hc);
>>axis([0 255 0 15000])
>>set(gca, 'xtick', 0:50:255)
>>set(gca, 'ytick', 0:2000:15000)
plot函数
同stem一样,也是由三元组指定
默认值为不带标记的实的蓝线。
此外,坐标轴的取值范围和刻度线为人工设定的,利用ylim和xlim可以自动设定取值范围及刻度。