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^上指三角形
wd菱形
ks方形
\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')

结果如下:

 

 

 

 

感谢阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金泽遗梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值