Sobelなどでx方向、y方向のエッジ強度を求めたあと
cv::Matの形式のままだと
cv::cartToPolar(matX, matY, magnitude, angle, true);
を使用すれば一度に変換することができる。
補足:
cv::cartToPolarの入力データの形式は、短精度か倍精度の浮動小数点なので、sobelの出力の形式をあわせておく必要がある CV_32Fなど
各要素ごとに計算する場合は、
cv::norm(cv::Point(x , y));
cv::fastAtan2(y , x);
を使用することになる
注意
双方とも角度の結果は、0-360となり、精度は0.3である
cv::Point(0,0)の角度は、0になるので、ヒストグラムを計算する場合除外しなければいけない
0 件のコメント:
コメントを投稿