回答編集履歴

6

誤植修正

2017/07/21 04:34

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  > {
60
60
 
61
- > double delta = eps * ((std::min)(r1.width, r2.width) + (std::min)(r1.height, > r2.height)) * 0.5;
61
+ > double delta = eps * ((std::min)(r1.width, r2.width) + (std::min)(r1.height, r2.height)) * 0.5;
62
62
 
63
63
  > return std::abs(r1.x - r2.x) <= delta &&
64
64
 

5

import numpy as npをするように注意喚起

2017/07/21 04:34

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -142,7 +142,7 @@
142
142
 
143
143
 
144
144
 
145
- [こちら](https://stackoverflow.com/questions/21689804/grouprectangles-opencv-not-working)を参考にしました。
145
+ [こちら](https://stackoverflow.com/questions/21689804/grouprectangles-opencv-not-working)を参考にしました。事前に`import numpy as np`するのを忘れずに。
146
146
 
147
147
 
148
148
 

4

Pythonのテストコード追記

2017/07/20 09:49

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -106,11 +106,11 @@
106
106
 
107
107
 
108
108
 
109
- ですので、groupRectanglesを自ら呼び出すようなコードを書けば、パラメータ`eps`を指定できることになります。次のようにして、実際に実行することが出来ました。(ただし、再現環境はOpenCV3.1)
109
+ ですので、groupRectanglesを自ら呼び出すようなコードを書けば、パラメータ`eps`を指定できることになります。次のようにして、実際に実行することが出来ました。(ただし、再現環境はOpenCV3)
110
110
 
111
- > ```C++
111
+ ```C++
112
112
 
113
- > cascade.detectMultiScale(smallImg, faces,
113
+ cascade.detectMultiScale(smallImg, faces,
114
114
 
115
115
  1.1, // scaleFactor
116
116
 
@@ -120,25 +120,29 @@
120
120
 
121
121
  cv::Size(30, 30));
122
122
 
123
- > // 以下の値は自由
123
+ // 以下の値は自由
124
124
 
125
- > int groupThreshold = 3;
125
+ int groupThreshold = 3;
126
126
 
127
- > double eps = 0.5;
127
+ double eps = 0.5;
128
128
 
129
- > cv::groupRectangles(faces, gourpThreshold, eps);
129
+ cv::groupRectangles(faces, gourpThreshold, eps);
130
130
 
131
- > ```
131
+ ```
132
132
 
133
133
 
134
134
 
135
- そして、`groupThreshold`も、`eps`も0にしたときの実行結果がこちら。
135
+ ```Python
136
136
 
137
- ![われらがレナ姐さん](71c836fd084b1ada99b4ed5dce2170be.jpeg)
137
+ facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.04, minNeighbors=0, minSize=(80, 80), maxSize=(200, 200))
138
138
 
139
- うまくいきました!
139
+ facerect, _ = cv2.groupRectangles(np.array(facerect).tolist(), groupThreshold=3, eps=0.5)
140
140
 
141
+ ```
142
+
143
+
144
+
141
- (よく考えたら、これじゃ実行結果として不十分ですね... タイミング見て追記しま)
145
+ [こちら](https://stackoverflow.com/questions/21689804/grouprectangles-opencv-not-working)参考にしました
142
146
 
143
147
 
144
148
 

3

論理修正

2017/07/20 09:45

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  - **minNeighborsについて**
4
4
 
5
- 『物体候補領域が何個以上重なっていたらそれを一つの物体として検出する』というイメージで大体あっていると思います。その重なり具合を指定するパラメータは存在しますが、気軽に変更できるような仕様にはなっていません。詳しくは後述します。
5
+ 『物体候補領域が何個以上重なっていたらそれを一つの物体として検出する』というイメージで大体あっていると思います。その重なり具合を指定するパラメータは存在します。詳しくは後述します。
6
6
 
7
7
 
8
8
 
@@ -106,7 +106,7 @@
106
106
 
107
107
 
108
108
 
109
- ですので、groupRectanglesを自ら呼び出すようなコードを書けば、パラメータ`eps`を指定できることになります。次のようにして、実際に実行することが出来ました。(ただし、環境はOpenCV3.1)
109
+ ですので、groupRectanglesを自ら呼び出すようなコードを書けば、パラメータ`eps`を指定できることになります。次のようにして、実際に実行することが出来ました。(ただし、再現環境はOpenCV3.1)
110
110
 
111
111
  > ```C++
112
112
 
@@ -138,6 +138,8 @@
138
138
 
139
139
  うまくいきました!
140
140
 
141
+ (よく考えたら、これじゃ実行結果として不十分ですね... タイミングを見て追記します。)
142
+
141
143
 
142
144
 
143
145
  ---

2

成形

2017/07/19 19:08

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -114,7 +114,7 @@
114
114
 
115
115
  1.1, // scaleFactor
116
116
 
117
- 0, // minNeighbors(仮)
117
+ 0, // minNeighbors(仮)
118
118
 
119
119
  CV_HAAR_SCALE_IMAGE,
120
120
 

1

画像のアップ

2017/07/19 18:01

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -134,6 +134,8 @@
134
134
 
135
135
  そして、`groupThreshold`も、`eps`も0にしたときの実行結果がこちら。
136
136
 
137
+ ![われらがレナ姐さん](71c836fd084b1ada99b4ed5dce2170be.jpeg)
138
+
137
139
  うまくいきました!
138
140
 
139
141