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.

Eliminar pequeños detalles en imagen python.

Hace mucho tiempo que estoy luchando por encontrar una solución a este problema. Necesito eliminar los anillos y puntos multicolores de la imagen, pero conservar las formas densas. Intenté usar OpenCV e iteré sobre los píxeles, pero aún no puedo eliminar lo innecesario de la imagen. Gracias de antemano por los consejos.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución para eliminar anillos y puntos de varios colores usando OpenCV en Python

    Los siguientes pasos se pueden seguir para eliminar los anillos y puntos de varios colores en la imagen utilizando OpenCV en Python:

    1. Convertir la imagen en escala de grises usando el método cvtColor().
    2. Aplicar la binarización en umbral en la imagen en escala de grises utilizando el método threshold() para obtener una imagen binaria.
    3. Aplicar la operación de apertura morfológica utilizando el método morphologyEx() para eliminar puntos pequeños, anillos o ruido de la imagen binaria.
    4. Aplicar la operación de cierre morfológica utilizando el método morphologyEx() para rellenar los espacios en blanco y reconectar los bordes de las formas densas en la imagen binaria.
    5. Mostrar la imagen final utilizando el método imshow().

    Aquí está el fragmento de código que se puede utilizar para implementar los pasos anteriores:

    import cv2
    
    # Leer la imagen de entrada
    imagen = cv2.imread('input_image.png')
    
    # Convertir la imagen en escala de grises
    imagen_gris = cv2.cvtColor(imagen, cv2.COLOR_BGR2GRAY)
    
    # Aplicar la binarización en umbral en la imagen en escala de grises
    imagen_binaria = cv2.threshold(imagen_gris, 200, 255, cv2.THRESH_BINARY_INV)[1]
    
    # Aplicar la operación de apertura morfológica
    kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))
    imagen_apertura = cv2.morphologyEx(imagen_binaria, cv2.MORPH_OPEN, kernel)
    
    # Aplicar la operación de cierre morfológica
    imagen_cierre = cv2.morphologyEx(imagen_apertura, cv2.MORPH_CLOSE, kernel)
    
    # Mostrar la imagen final
    cv2.imshow('Imagen final', imagen_cierre)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    Al utilizar el fragmento de código anterior, se puede eliminar los anillos y puntos de varios colores de la imagen de entrada, manteniendo las formas densas.

Comments are closed.