2016-05-02 26 views
0

これは、Javaでの画像の歪度を実装する正しい方法ですか?私は赤と緑について同じ方法を繰り返してきたことに注意してください。私はそれをすべて一緒にする方法を十分に認識しています。私は、分析のためにこれを60回実行する前に、このアルゴリズムが正しいことを確認したいだけです。画像の歪みJava

歪度を計算するには、差の2乗から3のべき乗までの単調変移法を単純に変更することができます。しかし、それよりももう少しあるべきであるようです。この話題に関して私よりも教育を受けた人が見てもらえると、それは素晴らしいことになります。乾杯。

/*Blue Variance*/ 
    public static double varianceBlue(BufferedImage image){ 
     double mean = meanValueBlue(image); 
     double sumOfDiff = 0.0; 

     for (int y = 0; y < image.getHeight(); ++y){ 
       for (int x = 0; x < image.getWidth(); ++x){ 
           Color b = new Color(image.getRGB(x, y)); 
           double colour= b.getBlue() - mean; 
           sumOfDiff += Math.abs(Math.pow(colour, 3)); 
          }     
          } 
     return sumOfDiff/((image.getWidth() * image.getHeight()) - 1); 
     } 

    /*Blue Standard Deviation*/ 
    public static double standardDeviationBlue(BufferedImage image){ 
     return Math.sqrt(varianceBlue(image)); 
    } 

答えて

-1

あなたtake a look to this page場合、あなたは、標準偏差の立方体で分割する持っていることを見ることができます。歪度の調整版もあります。

N値の精度に注意してください。これは、標準偏差および歪度(N-1対N)を計算するのに使用される値と同じではありません。

0

第1に、RGB色空間を使用して画像を分析することは推奨されません。なぜならRGB色空間は知覚的に均一な空間ではなく、その次元は高度に相関しているからです[Yilmaz、Alper、Omar Javed、Mubarak Shah。 "オブジェクトトラッキング:アンケート" Acmコンピューティング調査(CSUR)38.4(2006):13.]。最初に画像をHSVカラースペースに変換する方が良いでしょう。次に、ヒストグラムの歪度を計算するのは、calculate histogram featuresのような強度値ではなく、より一般的です。それを実装するには、定義skewnessを使用できます。

関連する問題