[Python] NumPy, PIL adding an image

Discussão em 'Python' iniciado por Stack, Agosto 26, 2025.

  1. Stack

    Stack Membro Participativo

    I'm trying to add two images together using NumPy and PIL. The way I would do this in MATLAB would be something like:

    >> M1 = imread('_1.jpg');
    >> M2 = imread('_2.jpg');
    >> resM = M1 + M2;
    >> imwrite(resM, 'res.jpg');


    I get something like this:

    alt text http://www.deadlink.cc/matlab.jpg

    Using a compositing program and adding the images the MATLAB result seems to be right.

    In Python I'm trying to do the same thing like this:

    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')


    and I get something like this:

    alt text http://www.deadlink.cc/python.jpg

    Why am I getting all those funky colors? I also tried using ImageMath.eval("a+b", a=im1, b=im2), but I get an error about RGB unsupported.

    I also saw that there is an Image.blend() but that requires an alpha.

    What's the best way to achieve what I'm looking for?

    Source Images (images have been removed):

    alt text http://www.deadlink.cc/_1.jpg alt text http://www.deadlink.cc/_2.jpg

    Humm, OK, well I added the source images using the add image icon and they show up when I'm editing the post, but for some reason the images don't show up in the post.

    (images have been removed) 2013 05 09

    Continue reading...

Compartilhe esta Página