Sto provando ad aggiungere due immagini insieme usando NumPy e PIL. Il modo in cui vorrei fare questo in MATLAB sarebbe qualcosa di simile:NumPy, PIL aggiungendo un'immagine
>> M1 = imread('_1.jpg');
>> M2 = imread('_2.jpg');
>> resM = M1 + M2;
>> imwrite(resM, 'res.jpg');
ottengo qualcosa di simile:
alt text http://www.deadlink.cc/matlab.jpg
Utilizzando un programma di composizione e aggiungendo le immagini il risultato MATLAB sembra essere di destra .
In Python che sto cercando di fare la stessa cosa in questo modo:
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')
e ottengo qualcosa di simile:
alt text http://www.deadlink.cc/python.jpg
Perche 'si ottengono tutti quei colori funky? Ho anche provato a utilizzare ImageMath.eval("a+b", a=im1, b=im2)
, ma ottengo un errore su RGB non supportato.
Ho anche visto che c'è un Image.blend()
ma che richiede un alfa.
Qual è il modo migliore per ottenere ciò che sto cercando?
Immagini sorgente (le immagini sono state rimosse):
alt text http://www.deadlink.cc/_1.jpg alt text http://www.deadlink.cc/_2.jpg
Humm, OK, così ho aggiunto le immagini di origine utilizzando l'icona immagine aggiuntivo e si presento quando sto modificando il palo , ma per qualche motivo le immagini non appaiono nel post.
(le immagini sono state rimosse) 2013 05 09
Grazie, la tua spiegazione è stata molto chiara. – rem7
Perché "fluttuare"? Un 'uint16' sarebbe sufficiente. – jfs
Non c'era un motivo razionale per scegliere float, uint16 sarebbe stato abbastanza vero. – Ivan