ハフ変換とは
xy画像空間中の直線は、

を傾き、

を切片として次の式で表されました。
つまり、直線というのは「
傾き」と「
切片」という二つのパラメータを持ったものであるということが分かります。
言い換えれば、直線は「ab二次元平面」の点として表すことができるということです。
「xy平面の直線」⇔「ab平面の点」ということは分かりましたが、ではxy平面の点というのはどうなるでしょう。
これはさっきの直線の式を変形してやった
からわかります。つまり、xy平面上の点はab平面上では直線になるのです。
点が直線になるというのはどういった意味があるのでしょうか?
これは、「ある点

を通るような直線は無数にある」という事実により起こるのです。
例えば

という点ですが、これは
といった直線が通ります。これらの直線はそれぞれab平面上に

という形でプロットされます。
式(1)によれば

という点は

という点に移るとのことですが、確かに上の三点もこの直線を通っています。
このようなab平面への写像のことをハフ変換といいます。
直線検出
先ほどの説明をまとめますと
「xyの直線」⇔「abの点」 「xyの点」⇔「abの直線」ということでした。
ここで直線検出というのは次のようなプロセスで行います。
「xyのエッジの点」⇒「abの直線」⇒「abの直線の交点」⇒「xyの直線」
まず「xy座標」つまりある画像のそれぞれの画素におけるエッジの点をab平面上の直線に写像します。
ここでab平面にはたくさんの直線ができるわけですが、もし抽出したエッジの点が直線であればどこか一つ、交点ができるはずです。
例えば上の画像の例で考えましょう。
これでab平面にそれぞれの直線をひくと交点

が浮かび上がります。
つまり、元のxy座標の3点が

という点に乗っていた、ということが分かるのです。
javascript plugin Error : このプラグインで利用できない命令または文字列が入っています。
最終更新:2012年11月12日 19:48