# -*- coding: utf-8 -*- import numpy as np import cv2 img_path = "/home/pi/opencv_color.jpg" ranges = { "red": ([0, 0, 128], [60, 60, 255]), # B G R "yellow": ([0, 190, 210], [128, 255, 255]), # B G R # many more } image = cv2.imread(img_path) # Alternative #cam = cv2.VideoCapture(0) #check, image = cam.read() for key in ranges.keys(): lowerRange = np.array(ranges[key][0], dtype="uint8") upperRange = np.array(ranges[key][1], dtype="uint8") mask = cv2.inRange(image, lowerRange, upperRange) output = cv2.bitwise_and(image, image, mask=mask) # show the images cv2.imshow(key, output) cv2.waitKey(0) cv2.destroyAllWindows()