MatLab imhist

经试验发现,imhist的分段,如1:1:2,并不是分为x<=1;1<x<=2;x>2三段的,而是x<=0.5;0.5<x<=1.5;1.5<x<=2.5;x>2.5,这样的四段。

使用时会有细微差别。


以下转自http://zhidao.baidu.com/question/227791176.html

imhist对uint8和double型的不同之处

问:a=[2 1 3; 5 1 2];

h=imhist(a,10)
结果是
     0
     0
     0
     0
     0
     0
     0
     0
     0
     6
结果为什么会这样




答:a=[2 1 3; 5 1 2];输入matlab后是double型的数据,imhist(a,10)是把0-1分成了10个区间,double型的最大值为1,而a中都为大于1的值,所以都被置为1,即a中为6个1。
所以h=imhist后结果就是你的结果。
不知道你的本意是什么?是显示a中数字出现的频率,还是显示什么?
如果是显示a数字出现的频率,将a转换成uint8型,然后h=imhist(a)即可,默认是把0-255分成256个区间,结果就是1出现了2次,2出现了2次,3出现了1次,5出现了1次。
给 你举个例子
a =
     2     1     3
     5     1     2
>> [h,x]=imhist(a,10)
h =


     0
     0
     0
     0
     0
     0
     0
     0
     0
     6
x =
         0
    0.1111
    0.2222
    0.3333
    0.4444
    0.5556
    0.6667
    0.7778
    0.8889
    1.0000
可以看出,h为频率,x为区间段。




你可能感兴趣的:(matlab,imhist)