質問編集履歴
1
質問場所の変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
pyCharm色検
|
1
|
+
pyCharm 色検出
|
body
CHANGED
@@ -1,26 +1,11 @@
|
|
1
|
-
pyCharmにて3色の色を検知し
|
1
|
+
pyCharmにて3色の色を検知したいのですがHSVがよくわかりません、、
|
2
|
-
|
2
|
+
調べたのですがイマイチぴんとこず。
|
3
3
|
|
4
|
-
以下コードになります、
|
4
|
+
以下コードになります、
|
5
|
+
ブルー→水色 を検出したいです。
|
5
6
|
ご教授お願いいたします。
|
6
7
|
|
7
|
-
import cv2
|
8
|
-
import numpy as np
|
9
8
|
|
10
|
-
camera = cv2.VideoCapture(0)
|
11
|
-
width = int(camera.get(cv2.CAP_PROP_FRAME_WIDTH))
|
12
|
-
height = int(camera.get(cv2.CAP_PROP_FRAME_HEIGHT))
|
13
|
-
|
14
|
-
fps = camera.get(cv2.CAP_PROP_FPS)
|
15
|
-
codec = cv2.VideoWriter_fourcc(*'XVID')
|
16
|
-
output_video = cv2.VideoWriter('output.avi', codec, fps, (width, height))
|
17
|
-
|
18
|
-
while True:
|
19
|
-
|
20
|
-
ret, image = camera.read()
|
21
|
-
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
|
22
|
-
|
23
|
-
|
24
9
|
green_min = np.array([40, 100, 0])
|
25
10
|
green_max = np.array([80, 255, 255])
|
26
11
|
green = cv2.inRange(hsv, green_min, green_max)
|
@@ -31,26 +16,4 @@
|
|
31
16
|
|
32
17
|
red_min = np.array([0, 100, 100])
|
33
18
|
red_max = np.array([0, 255, 255])
|
34
|
-
red = cv2.inRange(hsv, red_min, red_max)
|
19
|
+
red = cv2.inRange(hsv, red_min, red_max)
|
35
|
-
|
36
|
-
|
37
|
-
tmp_image, contours, hierarchy = cv2.findContours(green, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
|
38
|
-
tmp_image, contours, hierarchy = cv2.findContours(blue, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
|
39
|
-
tmp_image, contours, hierarchy = cv2.findContours(red, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
|
40
|
-
|
41
|
-
contours_image = image.copy()
|
42
|
-
|
43
|
-
cv2.imshow('input image', image)
|
44
|
-
cv2.imshow('blue', blue)
|
45
|
-
cv2.imshow('red', red)
|
46
|
-
cv2.imshow('contours image', contours_image)
|
47
|
-
|
48
|
-
output_video.write(overlapped_image)
|
49
|
-
|
50
|
-
key = cv2.waitKey(1) & 0xFF
|
51
|
-
if key == ord('q'):
|
52
|
-
break
|
53
|
-
|
54
|
-
camera.release()
|
55
|
-
output_video.release()
|
56
|
-
cv2.destroyAllWindows()
|