Esto debería detectar regiones amarillas y dibujar un rectángulo verde alrededor de la región amarilla más grande en su marco.
Si necesita ajustarlo a un tono específico de amarillo, modifique las líneas 7 y 8 para especificar los valores RGB.
importar numpy como np
importar argparse
tiempo de importación
importar cv2
- ¿Por qué la puesta de sol es de los colores que es?
- ¿Por qué algo tiene color?
- ¿Cómo funcionan los tejidos de recogida de color para lavadoras? ¿Qué es la ciencia detrás de ellos?
- Cómo obtener diferentes tonos de marrón mezclando colores
- ¿Por qué el rosa es el color más popular para las niñas?
# valores de color en BGR
colorLower = np.array ([255, 255, 0], dtype = “uint8”)
colorUpper = np.array ([255, 255, 150], dtype = “uint8”)
camera = cv2.VideoCapture (0)
mientras cierto:
(agarrado, marco) = camera.read ()
si no es agarrado:
descanso
color = cv2.inRange (frame, colorLower, colorUpper)
color = cv2.GaussianBlur (color, (3, 3), 0)
(cnts, _) = cv2.findContours (color.copy (), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# Ver si tenemos regiones del color especificado
si len (cnts)> 0:
# Detecta la región más grande
cnt = ordenado (cnts, clave = cv2.contourArea, reverse = True) [0]
rect = np.int32 (cv2.cv.BoxPoints (cv2.minAreaRect (cnt)))
# Dibuja un marco rectangular alrededor del objeto detectado
cv2.drawContours (marco, [rect], -1, (0, 255, 0), 2)
cv2.imshow (“Color Tracker”, marco)
tiempo de sueño (0.025)
if cv2.waitKey (1) & 0xFF == ord (“q”):
descanso
camera.release ()
cv2.destroyAllWindows ()