0% encontró este documento útil (0 votos)
249 vistas6 páginas

Python

Este documento describe cómo procesar imágenes en Python utilizando filtros como RGB, negativo, apertura, bordes Canny y filtro mediana. Explica cómo implementar cada filtro a través de funciones de Python y muestra las imágenes resultantes. Concluye que Python es útil para procesamiento de imágenes y los filtros mejoran la calidad de las imágenes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
249 vistas6 páginas

Python

Este documento describe cómo procesar imágenes en Python utilizando filtros como RGB, negativo, apertura, bordes Canny y filtro mediana. Explica cómo implementar cada filtro a través de funciones de Python y muestra las imágenes resultantes. Concluye que Python es útil para procesamiento de imágenes y los filtros mejoran la calidad de las imágenes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Procesamiento de imágenes en el lenguaje de

programación “PYTHON”
𝑇𝑎𝑡𝑖𝑎𝑛𝑎 𝑅𝑜𝑗𝑎𝑠 𝐺𝑟𝑖𝑚𝑎𝑙𝑑𝑜𝑠 1 , 𝑁𝑖𝑐𝑜𝑙𝑙 𝐶𝑎𝑖𝑐𝑒𝑑𝑜 𝐺𝑜𝑛𝑧𝑎𝑙𝑒𝑧 2 ,𝑁𝑖𝑘𝑜𝑙 𝑅𝑎𝑚𝑖𝑟𝑒𝑧 𝑂𝑟𝑡𝑖𝑧 3
Universidad Militar Nueva Granada - Cajicá.
u5600053@unimilitar. edu. co1 u5600031@unimilitar. edu. co2 u5600050@unimilitar. edu. co3

I. METODOLOGIA

Por medio del lenguaje Python®, el cual es un lenguaje de programación muy flexible, de fácil entendimiento y
desarrollo, se realizaron distintos procesamientos de imágenes, con el fin de evidenciar los filtros que se pueden
implementar en una imagen.
II. PROCEDIMIENTO

Por medio de la interfaz, se escogieron 5 códigos para realizar el procesamiento de imágenes, evidenciando sus
características y como se implementa en la imagen, como se observa a continuación:

1. RGB

Figura 1: Programación del código para RGB.

Figura 2: Procesamiento de la imagen con RGB.


En Python® existe la función de pasar una imagen normal a un procesamiento por medio de RGB, en donde los
pixeles de la imagen son distribuidos en forma de cuadricula, RGB es uno de los espacios de color más utilizados,
para esto se leen los niveles de pixeles de I, J o también llamados X y Y, para esta imagen se le dan valores para
los colores ROJO, VERDE Y AZUL, el nivel del color rojo se le da el valor de 0,para el color verde se le da el valor
de 1 y por último se le da el valor de 2 al color azul, luego de esto la función
“out.putpixel((i,j),(nivel_r,nivel_b,nivel_g))” asigna el valor de del color de cada pixel y para la posición del
pixel se especifica en el argumento i , j argumentando el color especifico del valor del pixel, adicionalmente se
lee el valor de “J+=1” en donde se varia la interacción de la intensidad en la imagen, luego de eso con la función
de “imagenL = PhotoImage” cumple con cargar la imagen de la base de datos del computador donde se
encuentra guardada y luego con la función “RGB = canvas.create_ imagen” en donde se asignan los valores de
las coordenadas en pixeles.

2. Negativo.

Figura 3: Programación del código para negativo.

Figura 4: Procesamiento de la imagen con negativo

Para generar la inversión de la imagen, o más conocido como la negación cambiando los componentes de RGB
por 225-x en el programa Python®, es necesario aplicar la operación pixel por pixel, a través de la
multiplicación del valor de pixel por -1, por otra parte se añade un valor de constante de (225) para que el
resultado quede dentro del intervalo de valores permitidos en la imagen como se evidencia en la función
“valor = 255 – gris” aplicando la operación sobre la imagen original iterando sobre los tres planos de todos los
pixeles de la imagen, obteniendo como resultado las iteraciones de la imagen como se muestra en la imagen
procesada.

3. APERTURA

Figura 5: Programación del código para apertura.

Figura 6: Procesamiento de la imagen para apertura.

Para generar la apertura en el lenguaje Python® también conocido como erosión +dilatación, se utiliza la
función “np.random.seed(2)” lo cual hace que los números aleatorios sean predecibles, obteniendo así el
reinicio de la inicialización del conjunto de números que aparece cada vez, luego de esto se envía la función “x,
y = (32*np.random.random((2, 20))).astype(np.int)” la cual son dos funciones random y astype para
números aleatorios entre 2 y 20,tambie se hace la apertura, erosión y la propagación de la imagen, como se
evidencia en la imagen procesada, adicionalmente se realiza la relación de aspecto de los ejes con la función
“plt.imshow(square,” ya que puede distorsionar la imagen, es decir, el píxel no será cuadrado, también es
importante determinar los rangos al mínimo y máximo de los datos utilizando, utilizando la función
“cmap=plt.cm.gray” por otra parte, para mostrar una imagen en escala de grises se configura el mapeo de
color usando los parámetros cmap='gris', vmin=0, vmax=255. Para finalizar se realiza la reconstrucción
morfológica de la imagen, en donde se elimina el ruido y la erosión de la imagen, como se evidencia en la imagen
procesada.
4. BORDES CANNY

Figura 7: Programación del código para bordes canny.

Figura 8: Procesamiento de la imagen para bordes canny.

Para generar los bordes CANNY en el phyton ® es una técnica para reconocer los contornos de los objetos, para
iniciar se utiliza la convolucion gaussiana para suavizar la imagen de entrada y eliminar el ruido, utilizando
para esto la función “ima = ndi.gaussian_filter(im, 1)”para esto es necesario aplicar el operador derivado a la
imagen suavizada con el fin de resaltar las regiones de la imagen , Luego, los bordes potenciales se adelgazan
hasta curvas de 1 píxel eliminando los píxeles no máximos de la magnitud del gradiente. Finalmente, los píxeles
de los bordes se mantienen o se eliminan usando umbrales de histéresis en la magnitud del gradiente.
Este filtro tiene en cuenta la anchura del gaussiano, es decir que mientras más ruidosa sea la imagen, mayor es
la anchura y el umbral bajo y alto para el umbral de histéresis.
5. FILTRO_MEDIANA

Figura 9: Programación del código para filtro mediana.

Figura 10: Procesamiento de la imagen para filtro mediana.

Para la imagen procesada de filtro mediana en Python ® se calcula la mediana de todos los píxeles bajo la
ventana del kernel y el píxel central se reemplaza con este valor mediano. Esto es muy efectivo para eliminar el
ruido conocido como ruido de sal y pimienta, tiene la ventaja de que el valor final del pixel es un valor real
presente en la imagen y no un promedio, de este modo se reduce el efecto borroso que tienen las imágenes que
han sufrido un filtro de media. Además, el filtro de la mediana es menos sensible a valores extremos. El
inconveniente es que resulta más complejo de calcular ya que hay que ordenar los diferentes valores que
aparecen en los pixeles incluidos en la ventana y determinar cuál es el valor central, adicionalmente sus
funciones permiten determinar el tipo de datos que se infiere a partir de los datos de entrada y se realiza una
interpretación de la matriz.
VII. CONCLUSIONES

A través del análisis y desarrollo del código para procesar las imágenes, se evidencio que Python® es un
entorno de programación muy útil y un poco más sencillo de utilizar, ya que su lenguaje es simplificado y rápido
de comprender, adicionalmente es importante aclarar que al manejar una interfaz ya desarrollada por otro
usuario es importante cuidar la ruta de acceso, pues esto genera inconvenientes en el momento de compilar la
interfaz, por último y no menos importante se tiene en cuenta los filtros de las imágenes que se utilizaron para
este laboratorio, son filtros que generan una mejor calidad de la imagen, para poder determinar ciertas
características de la imagen y poder evidenciar con eficiencia los cambios que obtienen al ser procesados.

También podría gustarte