Я написал код, который обнаруживает светло-розовый цвет. Теперь я хочу добавить код, который автоматически закроет веб-камеру после обнаружения светло-розового цвета. Можете ли вы помочь мне с этим? Вот EDITED код:Остановить веб-камеру после обнаружения определенного цвета
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(1):
_, frame = cap.read()
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lower_pink = np.array([160,50,50])
upper_pink = np.array([180,255,255])
mask = cv2.inRange(hsv, lower_pink, upper_pink)
# Bitwise-AND mask and original image
res = cv2.bitwise_and(frame,frame, mask= mask)
cv2.imshow('frame',frame)
cv2.imshow('mask',mask)
cv2.imshow('res',res)
break
if(cv2.countNonZero(mask) > 0):
print("FOUND")
raise SystemExit
cv2.destroyAllWindows()
Вы можете выйти, когда ваша маска говорит, что вы нашли розовый цвет (то есть хотя бы некоторое количество пикселей в маске не равно нулю). Что-то вроде; 'if (cv2.countNonZero (mask)> threshold): break' – Miki
Я новичок в обработке изображений и все это. Так можете ли вы добавить, какое пороговое значение я должен написать? Потому что, когда я положил его на ноль и запустил код. Окно (hsv, mask, res) просто закрывается в миллисекундах. – Maxi
Каков минимальный размер вашей розовой капли? Вы должны быть уверены, что не закрылись из-за каких-то шумных розовых точек. Вы можете установить его на 10, 20, 50, 100 и посмотреть, что работает лучше всего. Лучшим подходом было бы получить размер наибольшего blob в маске и выйти из него, достаточно большой. Это будет более устойчивым к шумным точкам. – Miki