获取直方图Matlab代码实现 数字图像处理

灰度级范围为[0,L-1]的数字图像的直方图是离散函数h(rk) = nk,其中rk是第k级灰度值,nk使图像中灰度为rk的像素个数。

在实践中,经常用乘积MN表示的图像像素的总数除它的每个分量来归一化直方图,M、N分别是图像行和列的维数。归一化后的直方图即为p(rk) = nk/MN,其中 k = 0,1,... L-1。

可以理解为p(rk)是灰度级在图像中出现的概率的一个估计。归一化后直方图所有分量的和应该为1。

可以看到运行结果:

下面给出归一化直方图的函数。

% -------------------------------------------------------------------------
% Author:xingdapai
% Time: 2020/03/01
% -------------------------------------------------------------------------
% Get_Histogram:  求直方图
%                  输入(图像矩阵)
%                  返回直方图数列,值域0-1之间
% -------------------------------------------------------------------------

function outputList = Get_Histogram(inputImg)
inputImg = uint8(inputImg);
outputList = zeros(1, 256);
[imgHeight, imgWidth] = size(inputImg);


for i = 1 : imgHeight
    for j = 1 : imgWidth
        
        grayLvl = inputImg(i, j) + 1;
        outputList(grayLvl) = outputList(grayLvl) + 1;
        
    end %for j
end %for i
outputList = outputList / (imgHeight * imgWidth);

 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值