matlab绘制图像的直方图、杆状图和折线图等
上述形式就可直接绘制直方条形图,其中参数z是一个包含将被绘制的点的行向量,即对应上面imhist函数得到的h;其中,f为输入图像,h是该图像的直方图数据,b是用来形成直方图的“容器”数目,即把所有灰度级分成几份的数量(b默认为256)。若按上面一行代码中使用imhist函数,则并不会画出图像对应的直方细杆图,而是得到直方图数据的一个向量(h)。例如,当LineSpec=’y-o‘,生成的杆状图其线
·
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是对应下表的一个三元组:
颜色说明符 | 线型说明符 | 标记点说明符 |
符号 | 颜色 | 符号 | 线型 | 符号 | 标记 |
m | 深红 | -. | 虚点线 | h | 六角星 |
y | 黄 | : | 点线 | p | 五角星 |
c | 青 | -- | 虚线 | < | 左指三角形 |
b | 蓝 | - | 实线 | > | 右指三角形 |
g | 绿 | v | 下指三角形 | ||
r | 红 | ^ | 上指三角形 | ||
w | 白 | d | 菱形 | ||
k | 黑 | s | 方形 | ||
叉 | |||||
. | 点 | ||||
* | 星号 | ||||
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')
结果如下:
感谢阅读!
更多推荐
已为社区贡献1条内容
所有评论(0)