Yukii's Blog

  • Scraps
  • V2

  1. Home
  2. Scraps
  3. 線分検知

線分検知

OpenCV においては、 Line Segment Detector と houghLinesP が割と汎用的に利用できそう。

---2022/10/06

古典的には、ハフ変換が用いられる。 以下の記事によれば、OpenCV の contrib では、 Fast Line Detector が利用可能な模様。

Fast Line Detector(高速ライン検出器)による線の検出

以前書いたハフ変換による線検出の記事を書いた。リンク    Emotion Explorer - 直線の検出LSD(Line Segment Detector)という線分検出アルゴリズムがOpenCV4に実装されているのを見つけた。ハフ変換より、精度よく線分を検出するようだが、ライセンスの問題か?AGPL v3の回避のため、OpenCV 4.1.0で削除されているようだ。残念。ちなみにオープンソース画像処理ライブラリOpenCVはBSDライセンスです。このへん...

emotionexplorer.blog.fc2.com

---2022/09/30

Related Scraps:

ハフ変換

r=xcos⁡(θ)+ysin⁡(θ)r = x \cos(\theta) + y \sin(\theta)r=xcos(θ)+ysin(θ)

代表的なのは、上記式による直線の検出手法。

OpenCV

画像は、BGR 系であるとする。 一方、 Matplotlib は RGB 系を想定する。 形式変換のためには、 np.flip(img, axis=-1) を実行すると良い。

cv2.HoughLines

cv2.Houghlines(img, rho, theta, thres)
  • (rho, theta): グリッド化する (r,θ)(r, \theta)(r,θ) の最小単位
  • thres: 投票回数の閾値

大津の二値化法

グレースケールの画像を白黒に変換したい時などに利用。 ある閾値で2つのクラスに分割するとき、クラスの分散の加重平均を最小化する手法。


© 2018-2022 Yukii