回答編集履歴

2

日本語の修正2

2017/07/16 02:45

投稿

削除済ユーザー
test CHANGED
@@ -1,6 +1,76 @@
1
- 一番最後のコードをかしましたがちゃんとできました。
1
+ > 画は読み込で出力するこできますが、円が出てきません。表示させるにはどうすればいいでょうか?
2
2
 
3
+
4
+
5
+ \[こちら\]\(http://qiita\.com/northriver/items/d6b73da79a13bf3526e2\)で円の検出関数について解説がついています。
6
+
7
+
8
+
9
+ > dp ・・・ 処理するときに元画像の解像度を落として検出する場合は増やす。例えば、1だとそのままの画質で処理して、2だと1/2に縮小して処理するらしい。
10
+
11
+ minDist ・・・ 検出される円と円の最小距離
12
+
13
+ param1 ・・・ 「Cannyのエッジ検出器で用いる二つのしきい値の高い方」らしい。低いほどいろんなエッジを検出する
14
+
15
+ param2 ・・・ 中心検出計算時のしきい値。低いほど円じゃないものも検出する
16
+
17
+ minRadius ・・・ 最小半径
18
+
19
+ maxRadius ・・・ 最大半径
20
+
21
+
22
+
23
+ \*\*\*元の値\*\*
24
+
25
+ circles = cv2\.HoughCircles\(gray, cv2\.HOUGH_GRADIENT, 1, 60, param1=10, param2=85, minRadius=10, maxRadius=80\)
26
+
27
+ \*\*\*修正後の値\*\*
28
+
29
+ circles = cv2\.HoughCircles\(gray, cv2\.HOUGH_GRADIENT, 1, 60, param1=30, param2=75, minRadius=10, maxRadius=300\)
30
+
31
+ ※手元にあった硬式テニスボールが検出されやすい程度に値をいじったものです。
32
+
33
+
34
+
35
+ > さらに円検出のコードを入れると普通に動画を表示させる時よりスローで再生されます。これはしょうがないことなのでしょうか?
36
+
37
+
38
+
39
+ 設定を厳しくすればラグは減っていきますが、その分検出もされなくなると思います。
40
+
41
+ テストを進める過程で、円が検出され過ぎる設定にすると10秒以上待たされて大変なことになりました。
42
+
43
+ 上記の設定であれば、ラグも検出精度もそれほどひどいことにはならないと思います。
44
+
45
+
46
+
47
+ > 'q'を押せば終了しますが何もせず動画の終了を待つと
48
+
49
+ File "fil\.py", line 14, in <module>
50
+
51
+ if circles != None:
52
+
53
+ ValueError: The truth value of an array with more than one element is ambiguous\. Use a\.any\(\) or a\.all\(\)
54
+
55
+ というエラーコードが出てきますがこれはどういうことでしょうか?
56
+
57
+
58
+
59
+ \[こちら\]\(http://nishidy\.hatenablog\.com/entry/2016/04/23/120519\)に解説がありました。配列\(array\)の処理は\.any\(\)か\.all\(\)で処理してください、ということのようです。
60
+
61
+
62
+
3
- (円を少緩めたの、if circles is not None:に変更たくらですので、実質同じコードだと思いすが…)
63
+ ちなみに私ところでは別のエラーがしたの`if circles is not None:`とてしまいました。
64
+
65
+ > FutureWarning: comparison to `None` will result in an elementwise object comparison in the future\.
66
+
67
+ if circles != None:
68
+
69
+
70
+
71
+ 以下動いたコードです。
72
+
73
+
4
74
 
5
75
  ```Python
6
76
 

1

日本語の修正

2017/07/16 02:42

投稿

削除済ユーザー
test CHANGED
@@ -1,70 +1,6 @@
1
- > 画は読み込で出力するこできますが、円が出てきません表示させるにはどうすればいいでしょうか?
1
+ 一番最後のコードをかしましたがちゃんとできました
2
2
 
3
-
4
-
5
- 恐らく、設定が厳しすぎて検出できていないのだと思います。\[こちら\]\(http://qiita\.com/northriver/items/d6b73da79a13bf3526e2\)で円の検出関数について解説がついていますので参照ください。
6
-
7
-
8
-
9
- \*\*\*元の値\*\*
10
-
11
- circles = cv2\.HoughCircles\(gray, cv2\.HOUGH_GRADIENT, 1, 60, param1=10, param2=85, minRadius=10, maxRadius=80\)
12
-
13
-
14
-
15
- \*\*\*修正後の値\*\*
16
-
17
- circles = cv2\.HoughCircles\(gray, cv2\.HOUGH_GRADIENT, 1, 60, param1=30, param2=75, minRadius=10, maxRadius=300\)
18
-
19
- ※手元にあった硬式テニスボールが検出されやすい程度に値を緩くいじったものです。
20
-
21
-
22
-
23
- > さらに円検出のコードを入れると普通に動画を表示させる時よりスローで再生されます。これはしょうがないことなのでしょうか?
24
-
25
-
26
-
27
- 設定を厳しくすればラグは減っていきますが、その分検出もされなくなると思います。
28
-
29
- テストを進める過程で、円が検出され過ぎる設定にすると10秒以上待たされて大変なことになりました。
30
-
31
-
32
-
33
- 上記の設定であれば、ラグも検出精度もそれほどひどいことにはならないと思います。
34
-
35
-
36
-
37
- > 'q'を押せば終了しますが何もせず動画の終了を待つと
38
-
39
- File "fil\.py", line 14, in <module>
40
-
41
- if circles != None:
42
-
43
- ValueError: The truth value of an array with more than one element is ambiguous\. Use a\.any\(\) or a\.all\(\)
44
-
45
- というエラーコードが出てきますがこれはどういうことでしょうか?
46
-
47
-
48
-
49
- \[こちら\]\(http://nishidy\.hatenablog\.com/entry/2016/04/23/120519\)に解説がありました。配列\(array\)の処理は\.any\(\)か\.all\(\)で処理してください、ということのようです。
50
-
51
-
52
-
53
- ちなみに私のところでは別のエラー
54
-
55
- > FutureWarning: comparison to `None` will result in an elementwise object comparison in the future\.
56
-
57
- if circles != None:
58
-
59
-
60
-
61
- したの`if circles is not None:`とてしまいました。
3
+ (円の検を少緩めたの、if circles is not None:に変更たくらですので、実質同じコードだと思いすが…)
62
-
63
-
64
-
65
- 以下、実際に動いたコードです。
66
-
67
-
68
4
 
69
5
  ```Python
70
6