回答編集履歴
3
丸とエッジ、中心線について追記
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
|

|
@@ -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
日本語の修正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
> ハフ変換に検知する線の太さを決める機能はないのでしょうか?
|
2
2
|
|
3
|
-
なかったと思います。やるのであれば、「太さ方向に細かい線を検出」して別のマスク画像に
|
3
|
+
なかったと思います。やるのであれば、「太さ方向に細かい線を検出」して、「別のマスク画像に検出した短い太さ方向の線を描画」してマスク画像に太い線を抽出する、のような方法になると思います。
|
4
4
|
|
5
5
|
> また、これらのやり方は目的を達成するのに適しているのでしょうか?
|
6
6
|
|
1
細かい質問への回答も加えた
answer
CHANGED
@@ -1,7 +1,15 @@
|
|
1
|
-
|
1
|
+
> ハフ変換に検知する線の太さを決める機能はないのでしょうか?
|
2
2
|
|
3
|
-
|
3
|
+
なかったと思います。やるのであれば、「太さ方向に細かい線を検出」して別のマスク画像に細かい線を抽出、のような方法になると思います。
|
4
4
|
|
5
|
+
> また、これらのやり方は目的を達成するのに適しているのでしょうか?
|
6
|
+
|
7
|
+
線といえばHough検出とセットで覚えていいと思います。非常に筋の良い方法です。
|
8
|
+
|
9
|
+
私の書いた下のやり方だとまだ丸いところも拾ってしまっていますが、すでに挑戦されたHough変換を以下の画像に対して使えば、狙い通り線を抽出できると思います。これで十分そうですね!
|
10
|
+
|
11
|
+
※細かいところはコード中のURLを見てもらった方が分かりやすいと思います。
|
12
|
+
|
5
13
|

|
6
14
|
```Python3Python3
|
7
15
|
import cv2
|