histcounts与imhistmatlab的差异

np8igboo  于 2023-01-26  发布在  Matlab
关注(0)|答案(1)|浏览(145)

histcountsimhist返回的计数和bin位置值不同。

x = [0.5000, 0.6429, 0.7143, 0.6429, 0.7857, 0.2857, 0.8571, 0.6429,0, 0.7857, 0.9286, 1.0000, 0.1429, 0.8571, 0.2857, 0.8571, 0.5714, 0.0714];

[c1, l1] = histcounts(x, 6)

c1 =
     3     2     1     4     3     5

l1 =
         0    0.1700    0.3400    0.5100    0.6800    0.8500    1.0200

[c2, l2] = imhist(x, 6)

c2 =
     2     3     0     5     6     2

l2 = 
         0    0.2000    0.4000    0.6000    0.8000    1.0000

这可能是什么原因呢?

ukdjmx9f

ukdjmx9f1#

MATLAB语言

close all;clear all;clc

nbins=[6 16 26 46]

x = [0.5000, 0.6429, 0.7143, 0.6429, 0.7857, 0.2857, 0.8571, ...
    0.6429,0, 0.7857, 0.9286, 1.0000, 0.1429, 0.8571, 0.2857, 0.8571, 0.5714, 0.0714];

我们可以从一个侧面

for k=1:1:numel(nbins)
    figure(k);
    ax=gca;hold on;grid on
    [C1, L1] = histcounts(x,nbins(k));
    stem(L1(1:end-1),C1);hold on
    [C2, L2] = imhist(x,nbins(k));
    stem(ax,L2,C2)

end

或者从另一个未示出的词干图,非常类似于上面的词干图。

for k=1:1:numel(nbins)
    figure(k);
    ax=gca;hold on;grid on
    [C1, L1] = histcounts(x,nbins(k));
    stem(L1(2:end),C1);hold on
    [C2, L2] = imhist(x,nbins(k));
    stem(ax,L2,C2)

end

点:imhist是一个图像命令,它将偏移量应用于所有直方图bin位置**,具体取决于馈入的图像类型**。
imhist对于微小图像没有截止值,因此序列x被假定为图像,但实际上它不是。
读取imhistdetails here
此表特别显示了此类偏移

相关问题