回答編集履歴

2

f

2019/10/28 09:13

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -174,7 +174,7 @@
174
174
 
175
175
 
176
176
 
177
-
177
+ ![イメージ説明](cf3784eae31609f8829f88a9251837ee.png)
178
178
 
179
179
 
180
180
 

1

f

2019/10/28 09:13

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -20,15 +20,23 @@
20
20
 
21
21
  この今40となっている閾値は処理したい画像によって調整する必要があります。
22
22
 
23
+ 大津の手法を使うとこのパラメータを自動で決められます。(必ずうまくいくとは限りません。うまくいかない場合は手動でこの値は決める必要があります。)
24
+
25
+
26
+
27
+ ```python
28
+
29
+ ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
30
+
23
- 150に変更したところ、綺麗に2値化することができました。
31
+ print(ret) # 161
32
+
33
+ ```
24
34
 
25
35
 
26
36
 
27
37
  ![イメージ説明](72c8690781ca23ba3ab0303a78f66233.png)
28
38
 
29
39
 
30
-
31
- 2値化は背景とそれ以外の物体を白黒で分ける処理なので、背景が異なる場合はそれに応じて変える必要があります。
32
40
 
33
41
 
34
42
 
@@ -60,9 +68,7 @@
60
68
 
61
69
  # 2値化する。
62
70
 
63
- # ★ 2値化の閾値は要調整
64
-
65
- ret, binary = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)
71
+ ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
66
72
 
67
73
 
68
74