MATLAB - 如何计算图像的均匀性

时间:2015-06-15 17:10:27

标签: matlab image-processing

我想获得图像强度的均匀性值。在描述表中,它描述如下:

一般说明

  

如果Z是指示图像强度的随机变量,则其在 n 周围的平均值是   enter image description here

     

其中 m Z 的平均值, p(。)其直方图和 L 是数字强度等级。

统一性

  

统一性,定义为

     

enter image description here

     当所有强度等级相等时,达到均匀度的最大值。

我不明白,我想知道的是p和L。我不知道如何计算它们。另外, p(。)中的(。)是什么?

修改

% V component of HSV image, contains 0~1 values in double type
% size(Iv) = 960 720
Z = Iv(:);

IL = unique(Z);        % Get all intensity levels
noinle = numel(IL);    % Number of intensity levels
p = hist(Ivc, noinle); % Histogram

U = 0;

for i = 1:noinle
    U = U + sum( p(i,:).^2 );
end

此操作会产生非常大的数字,这些数字在给定的样本数据集中不兼容。它们都是0到1之间的双数。

2 个答案:

答案 0 :(得分:2)

假设您的图片存储在名为Img的数组中,您可以使用以下代码获取Lp

IL = unique(Img(:));      % Get all intensity levels
L = numel(IL);            % Number of intensity levels
p = histogram(Img, IL);   % Histogram

最佳,

答案 1 :(得分:1)

除非在论文中定义,否则通常这些是定义:

p是图像的直方图。这是对放入水桶的图像中颜色的分解。在matlab中,函数是h = histogram(x,nbins)

L是桶的数量。通常,这是您根据应用程序决定的。