es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo enmascarar solo una parte de la imagen en Python?

Cuando enmascaro la imagen en opencv, muchas cosas dentro de la imagen aparecen en color blanco, pero solo quiero una región particular de la imagen en color blanco.
Estas son las coordenadas de esa región:
540:740,340:440
¿Cómo puedo enmascarar solo esta región de la imagen completa?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para enmascarar una región particular de una imagen en OpenCV utilizando Python, puedes crear una máscara binaria que especifique la región que deseas mantener y luego aplicar esta máscara a tu imagen. Así es como puedes hacerlo:

    import cv2
    import numpy as np
    
    # Cargar imagen
    img = cv2.imread('input_image.jpg')
    
    # Crear una máscara binaria con la misma forma que la imagen de entrada
    mask = np.zeros_like(img)
    
    # Definir la región de interés en color blanco
    mask[540:740, 340:440] = [255, 255, 255]
    
    # Aplicar la máscara a la imagen de entrada
    masked_image = cv2.bitwise_and(img, mask)
    
    # Guardar la imagen de salida
    cv2.imwrite('output_image.jpg', masked_image)
    

    En el código anterior, primero cargamos la imagen de entrada utilizando la función cv2.imread(). Luego, creamos una máscara binaria con la misma forma que la imagen de entrada utilizando la función np.zeros_like(). La máscara se inicializa con todo cero, por lo que será negra. Luego, definimos la región de interés estableciendo los píxeles dentro de las coordenadas (540:740, 340:440) en color blanco (255, 255, 255). Finalmente, aplicamos la máscara a la imagen de entrada utilizando la función cv2.bitwise_and(), que mantendrá solo los píxeles donde la máscara es blanca. La imagen enmascarada resultante se guarda utilizando la función cv2.imwrite().

Comments are closed.