Entradas populares

martes, 12 de junio de 2018

| Procesamiento Digital de Imágenes | Python | Filtros estadísticos ( Filtro Mediana)

PILLOW cuenta con el modulo ImageFilter que contiene un conjunto de filtros predefinidos que podemos utilizar con Image.Filter(). Entre estos filtros se encuentra MEDIAN que extrae la mediana estadística de sus pixeles vecinos. 

Se aplica con ImageFilter.MedianFilter(tamaño). en el siguiente código extraemos la mediana de 3x3 y 9x9.


CÓDIGO

from PIL import Image, ImageFilter

def mediana3x3(imagen):
    imgmediana = imagen.filter(ImageFilter.MedianFilter(3))
    imgmediana.save('mediana3x3.png')
    return None
def mediana9x9(imagen):
    imgmediana = imagen.filter(ImageFilter.MedianFilter(9))
    imgmediana.save('mediana9x9.png')
    return None
foto = Image.open('img.png')
mediana3x3(foto)
mediana9x9(foto)

EJECUCIÓN.

SIN FILTRO

MEDIANA3X3


MEDIANA9X9
DESCARGA

| Procesamiento Digital de Imágenes | Python | Difuminar Imagen (BLUR).

PILLOW cuenta con el modulo ImageFilter que contiene un conjunto de filtros predeifinidos que podemos utilizar con Image.Filter(). Entre estos filtros se encuentra BLUR el filtro que aplica ruido a nuestra imagen. 

BLUR difumina la imagen y es muy fácil de aplicar, en el siguiente código se muestra como. 
CÓDIGO

from PIL import Image, ImageFilter

def blur(imagen):
    imgruido =  imagen.filter(ImageFilter.BLUR)
    imgruido.save('BLUR.png')
    return None
foto = Image.open('img.png')
blur(foto)

EJECUCIÓN

SIN FILTRO

CON FILTRO


DESCARGA

| Procesamiento Digital de Imágenes | Python | Ruido Sal y Pimienta.

El ruido sal y pimienta (salt-and-pepper noise) que se presenta principalmente en imágenes. Se caracteriza principalmente por cubrir de forma dispersa toda la imagen con una serie de píxeles blancos y negros.

Para aplicar el ruido sal y pimienta dentro de python vamos a insertar aleatoriamente los puntos blancos y los puntos negros dentro de la imagen.

Utilizaremos la función random para generar un numero aleatorio, seleccionando un rango para que este se genere. ese numero aleatorio se lo asignaremos a una coordenada a la que se le aplicaran las siguientes operaciones 

[x][y]
[x+1][y]
[x][y+1]
[x+1][y+1]

Debemos definir un dato máximo y un dato mínimo que serán los colores blanco y negro.

Para ello debemos conocer el modelo de color en la que se encuentra nuestra imagen.

Si es en RGB nuestro dato máximo sera (255,255,255) y el dato mínimo sera (0,0,0).

Si esta en escala de grises nuestro dato máximo sera (255) y el dato mínimo sera (0).

domingo, 10 de junio de 2018

| Procesamiento Digital de Imágenes | Python | Suma y resta de imágenes en escala de grises.

la suma y resta de las imágenes se realiza pixel x pixel por en un imagen a escala de grises se suman los valores del pixel en las operaciones aritmeticas suma y resta.

Ejemplo:
Tenemos el primer pixel de la IMG1 y IMG2 en su primer posición con los siguientes valores. tomando como ejemplo valores del 0 al 10
IMG1[0][0] = (8)
IMG2[0][0] = (10)

El valor entonces sumamos ambos valores que representan red y los dividimos entre 2.

8+10= 18
18/2 = 9

si el resultado es un valor con decimal necesitamos tomar su valor absoluto (redondear) y así ir realizando las operaciones e ingresando los valores en una nueva matriz la cual será el resultado de la operación. 


| Procesamiento Digital de Imágenes | Python | Suma y resta de imágenes.

la suma y resta de las imágenes se realiza pixel x pixel por lo que si es una imagen en color RGB necesitamos sumar los valores del pixel (Red,Green,Blue) en las operaciones aritmeticas suma y resta.

Ejemplo:
Tenemos el primer pixel de la IMG1 y IMG2 en su primer posición con los siguientes valores. 
IMG1[0][0] = (250,250,250)
IMG2[0][0] = (255,255,255)

el primer valor representa RED entonces sumamos ambos valores que representan red y los dividimos entre 2.

250+255= 505
505/2 = 252.5 

como el resultado es un valor con decimal necesitamos tomar su valor absoluto (redondear) y así ir realizando las operaciones e ingresando los valores en una nueva matriz la cual será el resultado de la operación. 

sábado, 9 de junio de 2018

| Procesamiento Digital de Imágenes | Python | Segmentación de una imagen por umbral


Se pretende realizar la segmentación de una imagen en escala de grises a binaria. 

Para ello previamente necesitamos tener conocimientos básicos de la manipulación de imágenes con python, en las entradas anteriores aprendemos a abrir una imagen, transformarla a escala de grises y extraer el histograma de una imagen. 

El umbral es la suma de todos los pixeles (si hablas de una imagen en escala de grises).

Para binarizar una imagen es decir convertirla solo a blanco y negro, se compara cada uno de los pixeles en escala de grises con el umbral, por ejemplo, si el pixel tiene el valor de 144 y el umbral es de 150 se realiza la siguiente validacion:

si el valor del pixel es mayor a el umbral el valor será 1
si el valor del pixel es menor a el umbral el valor será 0

haciendo estas validaciones el valor se sustituirá con el nuevo valor en la posición validada.

| Procesamiento Digital de Imágenes | Python | Cálculo de histograma de una imagen.

Bienvenidos a otra entrada más de Procesamiento digital de imágenes, en esta entrada veremos como calcular el histograma de una imagen en escala de grises y gratificarlo con pyplot.


Libreria: PIL, MATPLOTLIB.

IDE: SPYDER

| Procesamiento Digital de Imágenes | Python | Lectura, Despliegue y Escritura.

Hola amigos, en esta sección de PDI comenzare a subir mis funciones de la libreria PIL (Python Imaging Library) es una biblioteca gratuita para el lenguaje de programacion python la cual agregasoporte para abrir, manipular y guardar muchos formatos de imágenes diferentes.  

Esta vez veremos el ejemplo de como se abre la imagen, como se muestra y como se almacena la imagen después de ser manipulada. El IDE que utilizamos fue Spyder y la version de python la 3.6.

|Matlab| Instalacion Matlab R2011a | Solución A Error De Licencia

La instalación del post anterior de  |Matlab| Descarga Matlab R2011a por Mega + crack  tenia un error en los archivos de licencias, en es...