#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 .
Или вы пытаетесь объединить их в одно изображение? Если да, то как? Маскирование, добавление, вычитание?