наложить изображение и показать светлый пиксель в каждом месте пикселя - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть два черно-белых изображения, которые я хотел бы объединить с окончательным изображением, показывающим светло-белый пиксель в каждой точке на обоих изображениях.Я попробовал следующий код, но он не работал.

background=Image.open('ABC.jpg').convert("RGBA")
overlay=Image.open('DEF.jpg').convert("RGBA")
background_width=1936
background_height=1863
background_width,background_height = background.size
overlay_resize= overlay.resize((background_width,background_height),Image.ANTIALIAS)
background.paste(overlay_resize, None, overlay_resize)
overlay=background.save("overlay.jpg")
fn=np.maximum(background,overlay)
fn1=PIL.Image.fromarray(fn)
plt.imshow(fnl)
plt.show()

Полученное сообщение об ошибке не может обработать этот тип данных.Любая помощь или совет, который кто-либо может дать, была бы великолепна.

1 Ответ

0 голосов
/ 19 сентября 2018

Я думаю, вы слишком усложняете вещи.Вам просто нужно прочитать оба изображения и сделать их массивами numpy в оттенках серого, а затем выбрать более светлый из двух пикселей в каждом месте.

Итак, начните с этих двух изображений:

enter image description here enter image description here

#!/usr/local/bin/python3

import numpy as np
from PIL import Image

# Open two input images and convert to greyscale numpy arrays
bg=np.array(Image.open('a.png').convert('L'))
fg=np.array(Image.open('b.png').convert('L'))

# Choose lighter pixel at each location
result=np.maximum(bg,fg)

# Save
Image.fromarray(result).save('result.png')

Вы получите это:

enter image description here

Ключевые слова: numpy, Python, изображение, обработка изображений, создание, смешивание, режим наложения, светлее, светлее, Photoshop, эквивалент, затемнение, наложение.

...