回答編集履歴

4

追記

2018/07/12 18:58

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -62,7 +62,11 @@
62
62
 
63
63
 
64
64
 
65
+ 全体像があまり見えてませんが、思いつくのが3点ほど。
66
+
67
+
68
+
65
- a, cv2.adaptiveThresholdのパラメータを微調整する。
69
+ a, `cv2.adaptiveThreshold`のパラメータを微調整する。
66
70
 
67
71
  > th1 = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
68
72
 
@@ -70,7 +74,9 @@
70
74
 
71
75
 
72
76
 
73
- パラメータが11,2ですが、25,10ならこ感じです。
77
+ パラメータがBlockSizeが11,cが2ですが、BlockSize:25,c:10ならこのようにります。
78
+
79
+
74
80
 
75
81
  **※ガウシアンフィルタ処理適用前**
76
82
 
@@ -90,7 +96,7 @@
90
96
 
91
97
 
92
98
 
93
- b, `cv2.inRange`と`cv2.bitwise_and`を使って白線以外の画像をマスキングする。
99
+ b, `cv2.inRange`と`cv2.bitwise_and`を使って白線以外のをマスキングする。
94
100
 
95
101
 
96
102
 

3

追記

2018/07/12 18:58

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -51,3 +51,55 @@
51
51
  ◇参考情報
52
52
 
53
53
  [opencvで画像の切り抜き](https://teratail.com/questions/129873)
54
+
55
+
56
+
57
+ ---
58
+
59
+
60
+
61
+ > これが限界なのでしょうか。
62
+
63
+
64
+
65
+ a, cv2.adaptiveThresholdのパラメータを微調整する。
66
+
67
+ > th1 = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
68
+
69
+ cv2.THRESH_BINARY,11,2)
70
+
71
+
72
+
73
+ パラメータが11,2ですが、25,10ならこんな感じです。
74
+
75
+ **※ガウシアンフィルタ処理適用前**
76
+
77
+ 25,10
78
+
79
+ ![25,10](19f72b38b3a4ba1417f763e146847c87.png)
80
+
81
+ 11,2
82
+
83
+ ![11,2](8c360801b030b4c0f12adb5e537dc581.png)
84
+
85
+
86
+
87
+ ◇参考情報
88
+
89
+ [AdaptiveThresholdSimulator](https://github.com/umyuu/AdaptiveThresholdSimulator)
90
+
91
+
92
+
93
+ b, `cv2.inRange`と`cv2.bitwise_and`を使って白線以外の画像をマスキングする。
94
+
95
+
96
+
97
+ c, findContoursのオプションを調整する。
98
+
99
+ ◇参考情報
100
+
101
+ [【OpenCV; Python】findcontours関数のまとめ](https://qiita.com/anyamaru/items/fd3d894966a98098376c)
102
+
103
+
104
+
105
+ あと質問文のソースコード部分はcodeタグで囲ってくださいな。

2

追記

2018/07/12 15:44

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- 回答としてはNoです。でも質問者さんがやりたい事を想定するとYesです。
9
+ 回答としてはNoです。
10
10
 
11
11
  Noな理由は[contourArea](https://docs.opencv.org/3.4/d3/dc0/group__imgproc__shape.html#ga2c759ed9f497d4a618048a2f56dc97f1)は4点の座標を渡せば計算してくれます。
12
12
 
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- Yesの理由は動作確認してませんが、こんな感じのソースです。
31
+ 動作確認してませんが
32
32
 
33
33
  ```Python
34
34
 

1

追記

2018/07/12 14:45

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -1,3 +1,11 @@
1
+ > 面積計算の処理では
2
+
3
+ > contours,hierarchy = cv2.findContours(thresh, 1, 2)
4
+
5
+ > の関数でしか対応してないのでしょうか。
6
+
7
+
8
+
1
9
  回答としてはNoです。でも質問者さんがやりたい事を想定するとYesです。
2
10
 
3
11
  Noな理由は[contourArea](https://docs.opencv.org/3.4/d3/dc0/group__imgproc__shape.html#ga2c759ed9f497d4a618048a2f56dc97f1)は4点の座標を渡せば計算してくれます。
@@ -20,8 +28,6 @@
20
28
 
21
29
 
22
30
 
23
-
24
-
25
31
  Yesの理由は動作確認してませんが、こんな感じのソースです。
26
32
 
27
33
  ```Python
@@ -38,7 +44,7 @@
38
44
 
39
45
  continue
40
46
 
41
-
47
+   cv2.drawContours(edges, c, -1, (0, 0, 255), cv2.CHAIN_APPROX_TC89_L1)
42
48
 
43
49
  ```
44
50