-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathColorDetection.py
More file actions
71 lines (63 loc) · 2.83 KB
/
Copy pathColorDetection.py
File metadata and controls
71 lines (63 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import cv2
import numpy as np
def empty():
pass
def stackImages(scale, imgArray):
rows = len(imgArray)
cols = len(imgArray[0])
rowsAvailable = isinstance(imgArray[0], list)
width = imgArray[0][0].shape[1]
height = imgArray[0][0].shape[0]
if rowsAvailable:
for x in range(0, rows):
for y in range(0, cols):
if imgArray[x][y].shape[:2] == imgArray[0][0].shape[:2]:
imgArray[x][y] = cv2.resize(imgArray[x][y], (0, 0), None, scale, scale)
else:
imgArray[x][y] = cv2.resize(imgArray[x][y], (imgArray[0][0].shape[1], imgArray[0][0].shape[0]),
None, scale, scale)
if len(imgArray[x][y].shape) == 2: imgArray[x][y] = cv2.cvtColor(imgArray[x][y], cv2.COLOR_GRAY2BGR)
imageBlank = np.zeros((height, width, 3), np.uint8)
hor = [imageBlank] * rows
hor_con = [imageBlank] * rows
for x in range(0, rows):
hor[x] = np.hstack(imgArray[x])
ver = np.vstack(hor)
else:
for x in range(0, rows):
if imgArray[x].shape[:2] == imgArray[0].shape[:2]:
imgArray[x] = cv2.resize(imgArray[x], (0, 0), None, scale, scale)
else:
imgArray[x] = cv2.resize(imgArray[x], (imgArray[0].shape[1], imgArray[0].shape[0]), None, scale, scale)
if len(imgArray[x].shape) == 2: imgArray[x] = cv2.cvtColor(imgArray[x], cv2.COLOR_GRAY2BGR)
hor = np.hstack(imgArray)
ver = hor
return ver
img = cv2.imread("resources/lambo.png")
cv2.namedWindow("trackbars")
cv2.resizeWindow("trackbars",640,240)
cv2.createTrackbar("Hue Min", "trackbars", 0, 179, empty)
cv2.createTrackbar("Hue Max", "trackbars", 19, 179, empty)
cv2.createTrackbar("Sat Min", "trackbars", 110, 255, empty)
cv2.createTrackbar("Sat Max", "trackbars", 240, 255, empty)
cv2.createTrackbar("Val Min", "trackbars", 153, 255, empty)
cv2.createTrackbar("Val Max", "trackbars", 255, 255, empty)
while True:
imgHSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
h_min = cv2.getTrackbarPos("Hue Min", "trackbars")
h_max = cv2.getTrackbarPos("Hue Max", "trackbars")
s_min = cv2.getTrackbarPos("Sat Min", "trackbars")
s_max = cv2.getTrackbarPos("Sat Max", "trackbars")
v_min = cv2.getTrackbarPos("Val Min", "trackbars")
v_max = cv2.getTrackbarPos("Val Max", "trackbars")
print(h_min,h_max,s_min,s_max,v_min,v_max)
lower = np.array([h_min,s_min,v_min])
upper = np.array([h_max, s_max, v_max])
mask = cv2.inRange(imgHSV, lower, upper)
imgResult = cv2.bitwise_and(img, img, mask=mask)
# cv2.imshow("HSV",imgHSV)
# cv2.imshow("Mask", mask)
# cv2.imshow("Result", imgResult)
imgStack = stackImages(0.6,([img,imgHSV], [mask, imgResult]))
cv2.imshow("Stacked image", imgStack)
cv2.waitKey(1)