1
我想要计算java中图像的标准偏差。我正在使用rast.Sample来获取每个灰度级,然后我将它从平均值中除去并将其平方。java中图像直方图的方差
我的代码是:
public int standardDeviation(BufferedImage source)
{
int width = source.getWidth();
int height = source.getHeight();
int totalPixels = width * height;
int temp = 0;
int VarianceSum = 0;
double SumSquared = 0;
int mean = mean(source);
double variance = 0;
int StandardDeviation = 0;
Raster rast = source.getRaster();
//Loop through rast getting each grey level.
for(int i =0; i<width; i++)
{
for(int j=0; j<width; j++)
{
temp = rast.getSample(i,j,0);
VarianceSum += (temp - mean);
SumSquared = Math.pow(VarianceSum,2);
}
}
variance = SumSquared/totalPixels;
System.out.println(temp);
System.out.println(VarianceSum);
//System.out.println(SumSquared);
System.out.println(totalPixels);
return StandardDeviation;
}
我做一些愚蠢的!请帮助
你面临的问题是什么?此外,如果不打算修改它,请使用getData()而不是getRaster – Rolle 2012-04-19 11:39:00
标准差的值返回为0. – CBoyle 2012-04-19 11:54:19
我的for循环是什么? – CBoyle 2012-04-19 11:56:40