teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

外接円の話を追記

2021/06/08 01:36

投稿

fana
fana

スコア12227

answer CHANGED
@@ -20,6 +20,7 @@
20
20
  手順1までで,各線分領域が得られている.これらの「長さ」を適当に求めればよい.
21
21
 
22
22
  * minAreaRect を使って領域の外接矩形を得る→その長軸方向を「線分の長さ」とできるかもしれない.
23
+ * 外接矩形でなくとも minEnclosingCircle で外接円を求めて,その径を使うのでも十分では? という話も考えられる.
23
24
  * 最も(話として)簡単な方法は「2つの端点座標を求めること」であろう.(2端点が求まれば,その間の距離が線分の長さである)
24
25
  →(1) とりあえず頭を空っぽにしてコーナー検出器を使えないかを試してもよいかもしれない.
25
26
  →(2) 領域の主軸方向を求めて「線の向き」を把握すれば,端点は容易にを求めることができるだろう.

1

追記

2021/06/08 01:36

投稿

fana
fana

スコア12227

answer CHANGED
@@ -23,4 +23,5 @@
23
23
  * 最も(話として)簡単な方法は「2つの端点座標を求めること」であろう.(2端点が求まれば,その間の距離が線分の長さである)
24
24
  →(1) とりあえず頭を空っぽにしてコーナー検出器を使えないかを試してもよいかもしれない.
25
25
  →(2) 領域の主軸方向を求めて「線の向き」を把握すれば,端点は容易にを求めることができるだろう.
26
- →(3) 「主軸」をまともに求めるのも面倒(?)なので,2値画像上での領域輪郭点群の主たる輝度勾配方向から近似的に推定するとか良いかもしない.(コーディング的にはかえって面倒か?)
26
+ →(3) 「主軸」をまともに求めるのも面倒(?)なので,2値画像上での領域輪郭点群の主たる輝度勾配方向から近似的に推定するとかも考えら.(コーディング的にはかえって面倒か?)
27
+ →(4) 「いやいや,前提条件で線分だということは既知なんだから,ここは直線当てはめでしょ」という方向で一次関数をフィッティングして「線の向き」を得るとか.