2012-04-19 2 views
1

자바에서 이미지의 표준 편차를 계산하려고합니다. 각 그레이 레벨을 얻으려면 rast.Sample을 사용하고 있습니다. 그런 다음 평균에서 멀어지면서 그것을 제곱합니다.자바의 이미지 막대 그래프의 분산

내 코드입니다 : 내가 어리석은 일을하고 있어요

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; 

    } 

! 도와주세요

+0

직면 한 문제는 무엇입니까? 또한 수정하지 않을 경우 getRaster 대신 getData()를 사용하십시오. – Rolle

+0

표준 편차 값이 0으로 반환됩니다. – CBoyle

+0

for 루프는 어떻게해야합니까? – CBoyle

답변

1

너는 너비를 두 번 반복합니다. width! = height 인 경우 충돌이 발생합니다. 내 의견보기

관련 문제