Para extraer un objeto de un color específico de una imagen, puedes utilizar la función cv.inRange(). En este ejemplo, extraeremos un objeto azul de la imagen.
Definir el rango de color
Primero, defina los límites inferior y superior del color azul en el espacio de color HSV:
## El azul se representa en HSV con un matiz de alrededor de 240 grados sobre 360.
## El rango de Matiz en OpenCV-HSV es de 0-180, para almacenar el valor en 8 bits.
## Por lo tanto, el azul se representa en OpenCV-HSV como un valor de H alrededor de 240 / 2 = 120.
## Para detectar el azul correctamente, se pueden elegir los siguientes valores:
blue_lower = np.array([100, 150, 0], np.uint8)
blue_upper = np.array([140, 255, 255], np.uint8)
Umbralizar la imagen
Umbralice la imagen HSV para obtener solo los colores azules:
## Máscara de color azul
blue_mask = cv.inRange(hsv_image, blue_lower, blue_upper)
Aplicar la máscara
Aplique la máscara a la imagen original para extraer el objeto azul:
## Utilice la máscara para extraer el objeto azul
blue_object = cv.bitwise_and(image, image, mask=blue_mask)
Muestre la imagen original y el objeto azul extraído:
## Guarde la imagen en el archivo especificado
cv.imwrite('blue_object.jpg', blue_object)