• ベストアンサー

エッジの角度について

こんにちは。 私はOpenCVでCannyのエッジ検出をやっています。 Cannyの関数の中身を見ていたのですが、角度の算出方法が分かりません。 エッジの角度を求める方法として、あるサイトでθ=atan(gy/gx)とありましたが、θのとる値の範囲もよくわからず、またCannyの関数の中でもそういった式はまったく出てこず困っています。 エッジの角度を算出する方法をご存知の方、ぜひ教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

まず訂正から。 atan()のヘルプを見てみたら、返り値は-π/2≦θ≦π/2の範囲でした。 で、atan()は引数に正接(tan)を取り、今回のソースではtanθ=gy/gxとなるθがatan(gy/gx)の返り値になります。 gy/gxが引数として正当(正しく元のtanである)かどうかはまた別問題ですが、これについては私はなんとも言えません。 #OpenCVはわからないのですよ

luck2251
質問者

お礼

ありがとうござます。 引数として正しいか調べる必要がありそうですね。 分かりやすい解説ありがとうございました。

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

θの値はラジアン(弧度法)で、0≦θ<2πの範囲を取ります。

luck2251
質問者

補足

ありがとうございます。 ちなみにエッジ角を求める方法はθ=atan(gy/gx)で合っているでしょうか?? 今はgxとgyはSobelフィルタを用いて求めています。

関連するQ&A