Сложите два изображения, чтобы получить одно изображение на Python

#python #image-processing #stack

#python #обработка изображений #стек

Вопрос:

Я пытался сложить два изображения.

Конечный результат будет использоваться в качестве входных данных для моей сверточной нейронной сети.

Теперь я попытался использовать dstack , я также пытался использовать PIL путем импорта Image.blend , но, похоже, я не могу достичь желаемого результата.

Я спрашиваю, есть ли у кого-нибудь другие идеи, которые я могу использовать, с благодарностью.

Комментарии:

1. Пожалуйста, включите то, что вы пробовали в коде.

2. вы вставляете из pillow

Ответ №1:

Это может вам помочь.

 from PIL import Image

image1 = Image.open("img1.jpg")
image2 = Image.open("img2.jpg")
image1 = image1.resize((224, 224))
image1_size = image1.size
image2_size = image2.size
new_image = Image.new('RGB',(2*image1_size[0], image1_size[1]), (250,250,250))
 

Комментарии:

1. Я изменил код следующим образом: image1 = H image2 = T_resized image1 = np.resize(image1,(224, 224)) image1_size = image1.size image2_size = image2.size new_image = Image.new('RGB',(2*image1_size[0], image1_size[1]), (250,250,250)) однако в последней строке я получаю сообщение об ошибке: объект ‘int’ не поддается подписке [Извините, не могу понять, как делать разрывы строк]

2. Это связано с тем, что метод размера массива numpy отличается от метода размера PIL. Если вы используете numpy, вам следует применить метод .shape вместо .size . Size дает целое число, указывающее, сколько места занимает массив.

Ответ №2:

Измените их размер так, чтобы они были одинакового размера, а затем используйте np.stack с axis= 3 (если вы используете многоканальные изображения. В противном случае используйте axis=2 .

Или вы пытаетесь объединить их в одно изображение? Если да, то как? Маскирование, добавление, вычитание?