matlab使用imhist、plot、fill画可填充颜色连续直方图

来源:互联网 发布:windows10数据恢复 编辑:程序博客网 时间:2024/06/01 10:40

在看一篇论文时,发现论文中的图像直方图是连续的,而且还有填充颜色,于是在网上搜索画法原理,没有找到,自己试了下竟然画出了这个效果。

下面是论文中直方图效果:


clearclose allI=imread('lena.bmp');%读取灰度图像histogram=imhist(I);%得到图像累计直方图数据x=0:1:255;figure;plot(x,histogram);%画连续直方图fill([x,fliplr(x)],[zeros(size(histogram')),fliplr(histogram')],'r');%画填充颜色title('图像连续直方图');figure;%显示原图像和原图像直方图subplot(1,2,1),imshow(I);title('原图像');subplot(1,2,2),imhist(I,64);title('原图像直方图');

下面是效果图:




上面的代码中plot函数的用法很简单,网上有很多参考资料,fill()函数的用法可以从它的参数中得出,然后fliplr()函数的用法如下:

用法:fliplr(X)

功能:matlab中的fliplr函数实现矩阵的左右翻转。 fliplr(X)使矩阵X沿垂直轴左右翻转。

>> a=[1 2 3 4;5 6 7 8; 9 10 11 12;13 14 15 16]


a =


     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16


>> fliplr(a)


ans =


     4     3     2     1
     8     7     6     5
    12    11    10     9
    16    15    14    13





0 0