Estoy tratando de agregar dos imágenes usando NumPy y PIL. La forma en que lo haría esto en MATLAB sería algo así como:NumPy, PIL agregando una imagen
>> M1 = imread('_1.jpg');
>> M2 = imread('_2.jpg');
>> resM = M1 + M2;
>> imwrite(resM, 'res.jpg');
me sale algo como esto:
alt text http://www.deadlink.cc/matlab.jpg
El uso de un programa de composición y la adición de las imágenes el resultado de MATLAB parece ser correcta .
En Python estoy tratando de hacer lo mismo de esta manera:
from PIL import Image
from numpy import *
im1 = Image.open('/Users/rem7/Desktop/_1.jpg')
im2 = Image.open('/Users/rem7/Desktop/_2.jpg')
im1arr = asarray(im1)
im2arr = asarray(im2)
addition = im1arr + im2arr
resultImage = Image.fromarray(addition)
resultImage.save('/Users/rem7/Desktop/a.jpg')
y me sale algo como esto:
alt text http://www.deadlink.cc/python.jpg
¿Por qué recibo todos los colores de moda? También intenté usar ImageMath.eval("a+b", a=im1, b=im2)
, pero recibí un error sobre RGB no admitido.
También vi que hay un Image.blend()
pero que requiere un alfa.
¿Cuál es la mejor manera de lograr lo que estoy buscando?
imágenes de origen (las imágenes se han eliminado):
alt text http://www.deadlink.cc/_1.jpg alt text http://www.deadlink.cc/_2.jpg
Humm, OK, bueno he añadido las imágenes de origen utilizando el icono de imagen adicional y se muestran cuando estoy editando el puesto , pero por alguna razón, las imágenes no aparecen en la publicación.
(imágenes se han eliminado) 2013 05 09
Gracias, su explicación fue muy clara. – rem7
¿Por qué 'flotar'? Un 'uint16' sería suficiente. – jfs
No había una razón racional para elegir float, uint16 hubiera sido suficiente. – Ivan