Я пытаюсь получить определение цвета в True или False.Я хочу создать программу, которая может сообщать мне о состоянии «Красный световой сигнал» о состоянии «Включен» или «Выключен», возвращая Статус обнаружения в значение «Истина» и «Ложь».
Я использую OpenCV, потому что хочу написать простую иточный скрипт на python.
def detect_status(image, Threshold=0.01):
height = image.shape[0]
width = image.shape[1]
desired_dim = (width, height) # width, height
image = cv2.resize(np.array(image), desired_dim, interpolation=cv2.INTER_LINEAR)
image_hsv=cv2.cvtColor(image, cv2.COLOR_RGB2HSV)
# Masks for red
# mask 0
lower_red = np.array([99,126,0])
upper_red = np.array([180,255,255])
mask0 = cv2.inRange(image_hsv, lower_red, upper_red)
# mask 1
lower_red = np.array([0,50,50])
upper_red = np.array([10,255,255])
mask2 = cv2.inRange(image_hsv, lower_red, upper_red)
# mask 2
lower_red = np.array([170,50,50])
upper_red = np.array([180,255,255])
mask1 = cv2.inRange(image_hsv, lower_red, upper_red)
# red pixels' mask
mask = mask0+mask1+mask2
Compare the percentage of red values
rate = np.count_nonzero(mask) / (desired_dim[0] * desired_dim[1])
if rate > Threshold:
return True
else:
return False
Ожидается обнаружение цвета в True of False.