- ベストアンサー
ハフ変換について
ハフ変換について勉強しているのですが、 直線抽出の方程式がなぜ、 ρ=xcosθ+ysinθ になるのかが、分かりません。 http://mikilab.doshisha.ac.jp/dia/research/person/shuto/research/0626/tyokusen.html この様なサイトを見たのですが、 ただ、式がでているだけでした。 詳しく解説・証明しているサイトがあれば、 教えていただけないでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No. 1 のものですが >>ある点 (x, y) が何かの直線の上に乗っているとすれば >>ρ=xcosθ+ysinθを満たします。 >ここが、なぜ、ρ=xcosθ+ysinθを満たすのか、 「なぜ」というのはなく単なる発見です(ちなみに、ハフ変換は論文ではなく、特許として最初に公開されたと思います)。 直線の方程式は C = Ax + By と書けます。A=B=0 でなければ、両辺を√(A^2+B^2) で割ると c = ax + by となって、√(a^2+b^2)=1 ですから、 a=cosθ, b=sinθ となるようなθがある筈で、未知パラメータ (a, b, c) を (ρ, θ) と書き換えることができます。 ρ=xcosθ+ysinθ と書き換えることができます。 つまり、直線を表すパラメータを (a, b, c) でなく (ρ, θ) で表現したことになっています。
その他の回答 (1)
- tatsumi01
- ベストアンサー率30% (976/3185)
サイトがあるかどうかは知りませんが、ハフ変換の考え方について。 ある点 (x, y) が何かの直線の上に乗っているとすれば ρ=xcosθ+ysinθ を満たします。但し、ρ,θ は未知のパラメータです。 そこで、(ρ,θ) としてあらゆる組み合わせの箱を考えます。「あらゆる」といってもコンピュータ上に無限の組み合わせを取ることはできませんから、ρ=0.1, 0.2, 0.3, 0.4, ..., 2.0 というように有限個にします。θも同じです。箱の数は、コンピュータのメモリ、計算時間と求めたい精度の見合いで決まります。 ある点 (x, y) がρ=xcosθ+ysinθの上にあるかどうかを上記の (ρ,θ) の一つ一つについて(ある誤差の範囲内で)判定し、もし上にあるならその (ρ,θ) の箱に一票入れます(voting と呼びます)。 与えられた点の集合について上記の投票を行い、得票のもっとも多かった (ρ,θ) を決めます。この (ρ,θ) に対応する ρ=xcosθ+ysinθ という直線は、もっとも多くの点の上を走る直線です。
お礼
ハフ変換の原理について、 ありがとうございました。 >ある点 (x, y) が何かの直線の上に乗っているとすれば >ρ=xcosθ+ysinθを満たします。 ここが、なぜ、ρ=xcosθ+ysinθを満たすのか、 導出の過程が分かれば、教えていただけないでしょうか。
お礼
何度も、回答、ありがとうございました。 なんとなくですが、分かったような気がします。