回答編集履歴

5

訂正版

2019/11/03 15:58

投稿

tanishi_a
tanishi_a

スコア484

test CHANGED
@@ -1 +1,35 @@
1
- # 勘違いぽい回答をしてしまったのでいったん削除・・・すみません
1
+ # 勘違いぽい回答をしてしまったので当初の回答は、いったん削除・・・すみません
2
+
3
+
4
+
5
+ 理屈がわかってなくて対症療法的なので、回答としては非常にダメな感じですが、、
6
+
7
+ このようにしてみたら、左上のランプのところが検出されるようにはなりますね・・・。
8
+
9
+ (下の方の赤いバーが検出はされてるが、面積が減った)
10
+
11
+
12
+
13
+ ```py
14
+
15
+ mask[(h > 240) & ((100 < s) & (s < 200))] = 255
16
+
17
+ ↓↓↓
18
+
19
+ mask[(h > 240) & ((128 < s) & (s < 200))] = 255
20
+
21
+ ```
22
+
23
+
24
+
25
+ 128 にしたのは、下記リンクの下記の記載を信じてみたもの。
26
+
27
+ 参考になるでしょうか。
28
+
29
+
30
+
31
+ > ここでは、赤色の判定なので、Sの値が (S > 128) である事を条件として付け加えましょう。
32
+
33
+
34
+
35
+ [https://qiita.com/odaman68000/items/ae28cf7bdaf4fa13a65b](https://qiita.com/odaman68000/items/ae28cf7bdaf4fa13a65b)

4

勘違いぽい回答をしてしまったのでいったん削除・・・すみません

2019/11/03 15:58

投稿

tanishi_a
tanishi_a

スコア484

test CHANGED
@@ -1,13 +1 @@
1
- ![RGB確認](0cb5d89ee454cec94491ea0aadc722fb.png)
2
-
3
-
4
-
5
- 帯状のところの色見ると、下記なので
1
+ # 勘違ぽい回答してしまったのでいったん削除・・・すみません
6
-
7
- 想定の範囲内に見えます。
8
-
9
-
10
-
11
- R: 75 G: 34 B: 43
12
-
13
- H: 245 S: 38 V: 21

3

(質問文について理解を間違えていたので書き換えました)

2019/11/03 15:31

投稿

tanishi_a
tanishi_a

スコア484

test CHANGED
@@ -1,57 +1,13 @@
1
- ※※ ちょっと質問文読み直して考えるので、いったんスルーしてください ※※
1
+ ![RGB確認](0cb5d89ee454cec94491ea0aadc722fb.png)
2
2
 
3
3
 
4
4
 
5
- 答えが出てるわけではないのでコメント欄に書きたかったのですが
5
+ 帯状ところ色を見ると、下記なので、
6
6
 
7
- 画像が貼れないで回答欄書きます。
7
+ 想定範囲内見えます。
8
8
 
9
9
 
10
10
 
11
- 下記は、質問文のスクリーンショット撮った画像で実行してみた結果ですが、
11
+ R: 75 G: 34 B: 43
12
12
 
13
- 「誤認識」と言っているのは、どの部分を言ってますか?
14
-
15
-
16
-
17
- 赤い部分を取り出したいということであれば、間違ってないように見えますが。
18
-
19
-
20
-
21
- ![結果1](342dfff36f361abd7ae2e63f8303da85.png)
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
- ※ 動作確認のために、下記だけ直して実行してみています。
30
-
31
-
32
-
33
-
34
-
35
- ```py
36
-
37
- mask, contours, hierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
38
-
39
- ↓↓↓
40
-
41
- contours, hierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
42
-
43
- ```
44
-
45
-
46
-
47
- ```py
48
-
49
- if len(rects) > 0:
13
+ H: 245 S: 38 V: 21
50
-
51
- rect = max(rects, key=(lambda x: x[2] * x[3]))
52
-
53
- ↓↓↓
54
-
55
- for rect in rects:
56
-
57
- ```

2

訂正1

2019/11/03 02:23

投稿

tanishi_a
tanishi_a

スコア484

test CHANGED
@@ -1,3 +1,7 @@
1
+ ※※ ちょっと質問文読み直して考えるので、いったんスルーしてください ※※
2
+
3
+
4
+
1
5
  答えが出てるわけではないのでコメントの欄に書きたかったのですが、
2
6
 
3
7
  画像が貼れないので回答欄に書きます。

1

一部間違えてたので編集

2019/11/03 01:48

投稿

tanishi_a
tanishi_a

スコア484

test CHANGED
@@ -50,8 +50,4 @@
50
50
 
51
51
  for rect in rects:
52
52
 
53
- cv2.rectangle(img, tuple(rect[0:2]), tuple(rect[0:2] + rect[2:4]), (0, 0, 255), thickness=2)
54
-
55
-
56
-
57
53
  ```