boofCV ライブラリの組み込みメソッドを使用せずに、画像の向きまたは勾配方向を計算する関数をコーディングしようとしています。
GradientToEdgeFeatures.direction(derivX,derivY,orientation);
derivX は x 方向の画像導関数です。derivY は Y 方向の画像導関数です。方向は、勾配方向の値を格納するためのイメージです。マグニチュードは、勾配方向の値を格納するためのイメージです。3x3 image= の最後の組み込みメソッドからの出力
向き 1.5707964
向き 1.5707964
向き 1.5707964
向き 1.5707964
向き 1.5707964
向き 1.5707964
向き 1.5707964
向き 1.5707964
向き 1.5707964
このステップとマグニチュードを計算するためのコードを次のように記述しました。
for (int i = 0; i < Orientation.getHeight(); i++) {
for (int j = 0; j < orientation.getWidth(); j++) {
float valueOfOrientation = (float) ((float)Math.atan2(derivY.get(j, i), derivX.get(j, i)));
orientation.set(j, i,valueOfOrientation);
System.out.println("Orientation"+valueOfOrientation );
}
}
for (int i = 0; i < (magnitude.getHeight()); i++) {
for (int j = 0; j <( magnitude.getWidth()); j++) {
float valueXMag=(float) Math.pow(derivX.get(j, i),2);
float valueYMag=(float) Math.pow(derivY.get(j, i),2);
float magnitudeValue=(float) Math.sqrt(valueXMag+valueYMag);
magnitude.set(j, i,magnitudeValue );
System.out.println("Magnitude "+magnitudeValue);
}
}
ただし、3x3 Image= の出力の値は
向き-1.5707964
向き-1.5707964
向き-1.5707964
向き-1.5707964
向き0.0 向き
-1.5707964向き
-1.5707964
向き-1.5707964
向き-1.5707964
マグニチュード 1.9073486E-6
マグニチュード 1.9073486E-6
マグニチュード 1.9073486E-6
マグニチュード 1.9073486E-6
マグニチュード 0.0
マグニチュード 1.9073486E-6
マグニチュード 1.9073486E-6
マグニチュード 1.9073486E-6
マグニチュード 4-6 1.90
これは組み込みメソッドとは異なります。
これは何が原因で、どうすれば解決できますか? 前もって感謝します!
PS私の書き間違いで申し訳ありません。私の母国語ではない英語。