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

回答編集履歴

2

日本語の修正2

2017/07/16 02:45

投稿

退会済みユーザー
answer CHANGED
@@ -1,24 +1,19 @@
1
1
  > 動画は読み込んで出力することができますが、円が出てきません。表示させるにはどうすればいいでしょうか?
2
2
 
3
- [こちら](http://qiita.com/northriver/items/d6b73da79a13bf3526e2)で円の検出関数について解説がついています。
3
+ 恐らく、設定が厳しすぎて検出できていないのだと思います。[こちら](http://qiita.com/northriver/items/d6b73da79a13bf3526e2)で円の検出関数について解説がついていますので参照ください
4
4
 
5
- > dp ・・・ 処理するときに元画像の解像度を落として検出する場合は増やす。例えば、1だとそのままの画質で処理して、2だと1/2に縮小して処理するらしい。
6
- minDist ・・・ 検出される円と円の最小距離
7
- param1 ・・・ 「Cannyのエッジ検出器で用いる二つのしきい値の高い方」らしい。低いほどいろんなエッジを検出する
8
- param2 ・・・ 中心検出計算時のしきい値。低いほど円じゃないものも検出する
9
- minRadius ・・・ 最小半径
10
- maxRadius ・・・ 最大半径
11
-
12
5
  ***元の値**
13
6
  circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 60, param1=10, param2=85, minRadius=10, maxRadius=80)
7
+
14
8
  ***修正後の値**
15
9
  circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 60, param1=30, param2=75, minRadius=10, maxRadius=300)
16
- ※手元にあった硬式テニスボールが検出されやすい程度に値をいじったものです。
10
+ ※手元にあった硬式テニスボールが検出されやすい程度に値を緩くいじったものです。
17
11
 
18
12
  > さらに円検出のコードを入れると普通に動画を表示させる時よりスローで再生されます。これはしょうがないことなのでしょうか?
19
13
 
20
14
  設定を厳しくすればラグは減っていきますが、その分検出もされなくなると思います。
21
15
  テストを進める過程で、円が検出され過ぎる設定にすると10秒以上待たされて大変なことになりました。
16
+
22
17
  上記の設定であれば、ラグも検出精度もそれほどひどいことにはならないと思います。
23
18
 
24
19
  > 'q'を押せば終了しますが何もせず動画の終了を待つと
@@ -29,12 +24,14 @@
29
24
 
30
25
  [こちら](http://nishidy.hatenablog.com/entry/2016/04/23/120519)に解説がありました。配列(array)の処理は.any()か.all()で処理してください、ということのようです。
31
26
 
32
- ちなみに私のところでは別のエラーが出ましたので、`if circles is not None:`としてしまいました。
27
+ ちなみに私のところでは別のエラー
33
28
  > FutureWarning: comparison to `None` will result in an elementwise object comparison in the future.
34
29
  if circles != None:
35
30
 
36
- 以下動いコード
31
+ が出まし、`if circles is not None:`としてしまいました
37
32
 
33
+ 以下、実際に動いたコードです。
34
+
38
35
  ```Python
39
36
  # -*- coding: utf-8 -*-
40
37
 

1

日本語の修正

2017/07/16 02:45

投稿

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