Entradas populares

domingo, 10 de junio de 2018

| 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. 



CÓDIGO

from PIL import Image
def suma(img1,img2,dim):
    suma = Image.new('RGB',dim) # se crea variable de imagen 
    i = 0
    while i < img1.size[0]:
        j = 0
        while j < img1.size[1]:
            r, g, b = img1.getpixel((i,j)) # se extrae los valores del pixel
            rs, gs, bs = img2.getpixel((i,j)) # se extrae los valores del pixel
            rr = int( (r + rs) / 2 ) # se suman los valores de R
            gg = int( (g + gs) / 2 ) # se suman los valores de G
            bb = int( (g + gs) / 2 ) # se suman los valores de B
            pixel = tuple([rr,gg,bb]) # se asignan los valores el RGB a un pixel
            suma.putpixel((i,j),pixel) # se asigna el pixel a la imagen
            j+=1
        i+=1
    suma.show() #se muestra la imagen
    
def resta(img1,img2,dim):
    resta = Image.new('RGB',dim) # se crea variable de imagen 
    i = 0
    while i < img1.size[0]:
        j = 0
        while j < img1.size[1]:
            r, g, b = img1.getpixel((i,j)) # se extrae los valores del pixel
            rs, gs, bs = img2.getpixel((i,j)) # se extrae los valores del pixel
            rr = int( (r - rs) / 2 ) # se suman los valores de R
            gg = int( (g - gs) / 2 ) # se suman los valores de G
            bb = int( (g - gs) / 2 ) # se suman los valores de B
            pixel = tuple([rr,gg,bb]) # se asignan los valores el RGB a un pixel
            resta.putpixel((i,j),pixel) # se asigna el pixel a la imagen
            j+=1
        i+=1
    resta.show() #se muestra la imagen
            
# Se cargan las imagenes
A=Image.open('C:/Users/notblu/Documents/Python/practica4/1.png') 
B=Image.open('C:/Users/notblu/Documents/Python/practica4/2.png')
C=Image.open('C:/Users/notblu/Documents/Python/practica4/3.png')

dimensiones = A.size # se extrae la dimension de una imagen

suma(A,B,dimensiones) # A + B
resta(A,B,dimensiones) # A - B

resta(B,A,dimensiones) # B - A

EJECUCIÓN
DESCARGA




1 comentario:

  1. Hola, no entiendo muy bien la variable dim, que significa?

    Saludos.

    ResponderEliminar

|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...