用Matlab求图像直方图的算法

时间:2024-02-23 14:46:03

function bars=histogram(I)
%用==来提取某个灰度的像素
%并用sum来计算个数
tic
bars=zeros(1,256);
for value=0:255
    bars(value+1)=sum(value==I(:));
end
bars=bars./numel(I);
toc

      tic和toc是用来设置计时器,以测试函数的性能。

      以如下方式使用这个函数:

      首先读取一幅图像,例如:

>>RGB=imread(\'1.jpg\');

      转换为灰度图:

>>I=rgb2gray(RGB);

      获取直方图:

>>bars=histogram(I);

      显示直方图:

>>bar(0:255,bars);