代表的なのは、上記式による直線の検出手法。
画像上の直線は、上記の形式で表せる。 は法線の角度を表し、 は原点と直線の距離を表す。
ある点 を上記式に代入すると、その点を通っていた直線に対応する 平面上の点の集合は、
で定義される 的な曲線になる。 すべての画像上の点をプロットしていくと、直線に相当する部分だけこの 平面で何回もプロットされることになる。 その点に対応する たちが、求める直線となる。
python だと OpenCV にて実装がされている。
OpenCV
画像は、BGR 系であるとする。
一方、 Matplotlib は RGB 系を想定する。
形式変換のためには、 np.flip(img, axis=-1)
を実行すると良い。
cv2.HoughLines
cv2.Houghlines(img, rho, theta, thres)
(rho, theta)
: グリッド化する の最小単位thres
: 投票回数の閾値線分検知
OpenCV においては、 Line Segment Detector と houghLinesP が割と汎用的に利用できそう。
---2022/10/06
大津の二値化法
グレースケールの画像を白黒に変換したい時などに利用。 ある閾値で2つのクラスに分割するとき、クラスの分散の加重平均を最小化する手法。
atan2
平面座標系に対して、極座標の角度を求めたくなったときに用いる関数。 他の関数を経由すると誤差を気にしなくてはならないので、それ用の関数として用意されたのがこれ。
カメラ内部パラメータ
カメラ座標(カメラの視点)からカメラ画像への各対象点の射影において、その変換を表す行列の数値。
ヒルベルト空間
内積が定義されるベクトル空間の一般化。
同次座標系
並行移動なども表現できるようにするために、 N+1 次元で対象データを表現すること。
最小二乗法
ある回帰モデルの予測値が、そのモデルのパラメータに対して線形結合の形をしているとき、観測データの残差の二乗を最小化することは、凸関数の最小値を求める問題に帰着するので、微分して 0 になる点を求める行う手法。
三角関数の合成公式
ただし、 は と を満たす関数。