ハフ変換

直線を検出する方法としてハフ変換があります。
今日はこのハフ変換について軽くまとめてみたいと思います。

ハフ変換

xy空間で直線は、aを傾き、bを切片とすると
 y=ax+b
と表す事が出来ます。
この直線は、aとbが決まっていれば、一意に決まります。
ということは、この直線はa,bという2つのパラメータを持っていることになります。


これは、xy空間での直線は、ab空間では1点で表す事が出来るということを表しています。
このab空間での1点を求めてやろうと言うのがハフ変換です。


逆に考えるとxy空間で1点だったものはab空間では直線になります。
 b=-xa+y
と言う風に写像されます。
xy空間(元の画像)に点があったら、ab空間に直線を引いていきます。
いくつかのxy空間の点をab空間に写像していくと、ab空間にはいくつかの直線が描かれています。
その直線たちの交点が、元のxy空間では直線である可能性があることを示しています。


ab空間では2本の直線の交点だとしたら、xy空間では2点を通る直線を表しています。
しかし、2点を通る直線は、信用はあまりありません。
その2点がノイズとノイズの可能性があるからです。
つまり、ab空間でたくさんの直線の交点が見つかると、xy空間で直線とみなしていいと考えられます。
こういう一連の流れを行うと、画像中の直線を検出することが出来ます。

※わかりにくいところもあるので、今後図なども入れて直してみたいと思います。