不仅仅是求方差var不行吧?标准差std应该也不行(其实标准差就是调用方差函数再开平方)。
原因是,图像数据的类型是整数(uint8),要想进行方差之类的计算,需要转化为浮点数(double或single):
std(double(f))var(double(f))
另外需要注意,由于f是矩阵,var或std都是对各列进行的,所以得到的结果是行向量。要想得到整个矩阵的方差,应该用:
>> var(double(f(:)))ans =
51473e+003
>> std(double(f(:)))
ans =
717444
这个你具体打开help,分别搜var和std函数就行了,help里边说的很明白很详细,一看就懂。
我这里稍微做一下解释:
v1=var(x)
V = var(X) returns the variance of X for vectors
v2=var(x,0)
var(X,0) is equivalent to var(X)
v3=var(x,1)
V = var(X,1) normalizes by N and produces the second moment of the sample about its mean
v4=var(x,w)
V = var(X,w) computes the variance using the weight vector w
v5=var(x,1,1)
V = var(X,w,dim) takes the variance along the dimension dim of X
s1=std(x)
s = std(X), where X is a vector, returns the standard deviation using (1) above
(std可以使用不同的式子求,求出来不等价,看具体情况选择,这里的(1)是help里边的一个公式)
s2=std(x,1)
s = std(X,flag) for flag = 0, is the same as std(X) For flag = 1, std(X,1) returns the standard deviation using (2) above, producing the second moment of the set of values about their mean
s3=std(x,w)
s = std(X,flag,dim) computes the standard deviations along the dimension of X specified by scalar dim Set flag to 0 to normalize Y by n-1; set flag to 1 to normalize by n
这里只是大体粘贴了一下,公式在help里边也有,你还是自己help一下哈~
以上就是关于matlab求图像直方图的方差全部的内容,包括:matlab求图像直方图的方差、matlab用var函数算出的方差和标准差求解释~!!~!~!、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)