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

回答編集履歴

3

丸とエッジ、中心線について追記

2021/10/16 13:33

投稿

退会済みユーザー
answer CHANGED
@@ -7,7 +7,9 @@
7
7
  線といえばHough検出とセットで覚えていいと思います。非常に筋の良い方法です。
8
8
 
9
9
  私の書いた下のやり方だとまだ丸いところも拾ってしまっていますが、すでに挑戦されたHough変換を以下の画像に対して使えば、狙い通り線を抽出できると思います。これで十分そうですね!
10
+ ※丸を検出するHough検出もOpenCVに入っているので、私が書いたコードにちょっと付け足して「丸部分を検出して黒く塗りつぶす」、というやり方もできますね。そうしたら黒太線の領域だけになります。
10
11
 
12
+
11
13
  ※細かいところはコード中のURLを見てもらった方が分かりやすいと思います。
12
14
 
13
15
  ![イメージ説明](c06452891c6630af00069aa68b6030a7.png)
@@ -31,4 +33,8 @@
31
33
 
32
34
  cv2.imwrite("img_bin.png",img_bin)
33
35
 
34
- ```
36
+ ```
37
+
38
+ 補足
39
+ ---
40
+ 黒太線の中心が必要であれば、Scikit-Imageの[Skeletonize](https://scikit-image.org/docs/dev/auto_examples/edges/plot_skeleton.html)をしたらよいですし、黒太線の輪郭であれば[blob検出](http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_contours/py_contour_features/py_contour_features.html)でやっても、[エッジ検出](http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_canny/py_canny.html)や[ラプラシアンフィルタ](http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_gradients/py_gradients.html)を使っても良いと思います。

2

日本語の修正

2021/10/16 13:33

投稿

退会済みユーザー
answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > ハフ変換に検知する線の太さを決める機能はないのでしょうか?
2
2
 
3
- なかったと思います。やるのであれば、「太さ方向に細かい線を検出」して別のマスク画像に細かい線を抽出、のような方法になると思います。
3
+ なかったと思います。やるのであれば、「太さ方向に細かい線を検出」して、「別のマスク画像に検出した短太さ方向の線を描画」してマスク画像に太い線を抽出する、のような方法になると思います。
4
4
 
5
5
  > また、これらのやり方は目的を達成するのに適しているのでしょうか?
6
6
 

1

細かい質問への回答も加えた

2021/10/16 07:22

投稿

退会済みユーザー
answer CHANGED
@@ -1,7 +1,15 @@
1
- 下のやり方だとまだ丸いところも拾ってしまっていますが、Hough変換を使えばもう線を抽出できところまで来てるようですので、これで十分そですね!
1
+ > ハフ変換に検知するの太さ決め機能はないのでしょか?
2
2
 
3
- ころはコード中URLもらった方が分りやすいと思います。
3
+ った思います。やるであれば、「太さ方向に細かい線検出」し別のマスク画像に細かい線を抽出、のような方法になると思います。
4
4
 
5
+ > また、これらのやり方は目的を達成するのに適しているのでしょうか?
6
+
7
+ 線といえばHough検出とセットで覚えていいと思います。非常に筋の良い方法です。
8
+
9
+ 私の書いた下のやり方だとまだ丸いところも拾ってしまっていますが、すでに挑戦されたHough変換を以下の画像に対して使えば、狙い通り線を抽出できると思います。これで十分そうですね!
10
+
11
+ ※細かいところはコード中のURLを見てもらった方が分かりやすいと思います。
12
+
5
13
  ![イメージ説明](c06452891c6630af00069aa68b6030a7.png)
6
14
  ```Python3Python3
7
15
  import cv2