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.

CÓDIGO

CÓDIGO
from PIL import Image
def suma(img1,img2,dim):
suma = Image.new('L',dim) # se crea variable de imagen
i = 0
while i < img1.size[0]:
j = 0
while j < img1.size[1]:
val1 = img1.getpixel((i,j)) # se extrae los valores del pixel
val2 = img2.getpixel((i,j)) # se extrae los valores del pixel
pixel = int((val1 + val2) / 2) # se asignan los valores 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('L',dim) # se crea variable de imagen
i = 0
while i < img1.size[0]:
j = 0
while j < img1.size[1]:
val1 = img1.getpixel((i,j)) # se extrae los valores del pixel
val2 = img2.getpixel((i,j)) # se extrae los valores del pixel
pixel = int((val1 - val2) / 2) # se asignan los valores 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 y se transoforma a escala de grises
A=Image.open('C:/Users/notblu/Documents/Python/practica4/1.png')
if A.mode != 'L':
AEG=A.convert('L')
B=Image.open('C:/Users/notblu/Documents/Python/practica4/2.png')
if B.mode != 'L':
BEG=B.convert('L')
C=Image.open('C:/Users/notblu/Documents/Python/practica4/3.png')
if C.mode != 'L':
CEG=C.convert('L')
dimensiones = A.size # se extrae la dimension de una imagen
suma(AEG,BEG,dimensiones) # A + B
resta(AEG,BEG,dimensiones) # A - B
resta(BEG,AEG,dimensiones) # B - A
EJECUCIÓN
DESCARGA
No hay comentarios:
Publicar un comentario