Как объединить изображения одинакового размера с помощью подушки модуля Python 3?
Подушка или PIL — это мощная библиотека Python для обработки изображений и манипулирования ими. Одной из наиболее распространенных задач обработки изображений является объединение нескольких изображений в одно. Он предоставляет ряд функций для загрузки, управления и сохранения изображений в различных форматах. Одной из основных особенностей Pillow является поддержка объединения изображений. Он поддерживает различные изображения, включая «jpeg», «png», «bmp», «gif», «ppm», «tiff». С помощью этого модуля мы можем делать с цифровыми изображениями практически все, например базовые функции обработки изображений, точечные операции, фильтрацию изображений с использованием встроенных ядер свертки и преобразование цветового пространства.
В этой статье мы узнаем, как объединять изображения одинакового размера с помощью модуля Pillow в Python 3.
Но прежде чем мы начнем, давайте сначала разберемся, что такое объединение изображений и почему это важно. Слияние изображений — это процесс объединения двух или более изображений в одно изображение. Он обычно используется в приложениях при создании панорам, объединении нескольких изображений в один кадр или смешивании изображений для создания нового изображения. Важно отметить, что для объединения изображений они должны быть одинакового размера.
Действия по объединению изображений одинакового размера с помощью подушки
Вот шаги по объединению изображений одинакового размера с помощью Pillow в Python3:
Шаг 1. Импортируйте необходимые модули
Для начала нам нужно импортировать необходимые модули. В этом случае нам нужно импортировать модуль Image из библиотеки Pillow.
from PIL import Image
Шаг 2: Откройте изображения
Далее нам нужно открыть изображения, которые мы хотим объединить. Мы можем сделать это, используя метод Image.open(). Этот метод возвращает объект Image, который мы можем использовать для управления изображением.
myimage1= Image.open('image1.jpg')
myimage1= Image.open('image2.jpg')
Шаг 3. Проверьте размеры изображений
Нам нужно убедиться, что изображения имеют одинаковый размер, прежде чем мы сможем их объединить. Мы можем проверить размер изображений, используя атрибут size.
if myimage1.size == myimage2.size:
# continue with merging
else:
print('The images must have the same size to merge them using Pillow!')
Шаг 4. Создайте новое изображение.
Нам нужно создать новое изображение, в котором будет храниться объединенное изображение. Мы можем сделать это, используя метод Image.new(). Этот метод принимает в качестве параметров режим и размер нового изображения.
mymerged_image= Image.new('RGB', myimage1.size)
Шаг 5: Объедините изображения
Наконец, мы можем объединить изображения, вставив одно изображение в другое с помощью метода Image.paste(). Нам нужно указать координаты, куда мы хотим вставить изображение.
mymerged_image.paste(myimage1, (0, 0))
mymerged_image.paste(myimage2, (myimage1.size[0], 0))
Шаг 6. Сохраните объединенное изображение
Мы можем сохранить объединенное изображение, используя метод Image.save().
mymerged_image.save(mymerged_image.jpg')
Теперь вы должны хорошо понимать, как объединять изображения одинакового размера с помощью модуля Pillow Python3. Давайте подробно рассмотрим несколько примеров с использованием разных подходов.
Пример 1: Горизонтальное объединение изображений
Ниже мы объединим два изображения по горизонтали. Первое изображение будет слева, а второе изображение справа.
Мы создаем новое объединенное изображение с шириной, равной ширине одного из входных изображений, и высотой, равной сумме высот двух входных изображений. Здесь мы читаем два входных изображения, myimage1 и myimage2, используя метод Image.open().
Далее мы проверяем, совпадают ли размеры двух изображений. Если да, мы создаем новое изображение с помощью метода Image.new(). Метод Image.new() принимает два аргумента: режим нового изображения (в данном случае «RGB») и размер нового изображения (в этом случае ширина нового изображения представляет собой сумму ширины двух входных изображений, а высота нового изображения равна высоте одного из входных изображений).
После создания нового изображения мы используем метод Paste() для объединения двух входных изображений по горизонтали. Метод Paste() принимает два аргумента: изображение для вставки и место, куда его нужно вставить. В этом случае мы вставляем image1 в верхний левый угол нового изображения ((0, 0)), а myimage2 в верхний правый угол нового изображения ((myimage1.size[0], 0)). И, наконец, мы сохранили объединенное изображение.
#import the PIL
from PIL import Image
# Open the images
myimage1 = Image.open('myimageone.jpg')
myimage2 = Image.open('myimagetwo.jpg')
# Checking the sizes of the images
if myimage1.size == myimage2.size:
# Creatin a new image
mymerged_image = Image.new('RGB', (myimage1.size[0], myimage1.size[1] + myimage1.size[1]))
# Merging the images horizontally
mymerged_image.paste(myimage1, (0, 0))
mymerged_image.paste(myimage2, (myimage1.size[0], 0))
# Saving the merged image
mymerged_image.save('mymerged_image_horizontal.jpg')
else:
print('The images must have the same size to merge them using Pillow')
Выход
Ввод изображений
Выходное изображение
Пример 2: Вертикальное объединение изображений
В приведенном ниже примере мы объединим два изображения по вертикали. Первое изображение будет вверху, а второе — внизу.
Мы создаем новое изображение с шириной, равной сумме ширин двух входных изображений, и высотой, равной высоте одного из входных изображений. Теперь, используя модуль PIL, мы вставили первое изображение в верхний левый угол нового изображения и второе изображение в верхний правый угол нового изображения. И, наконец, мы сохранили объединенное изображение.
#import the PIL
from PIL import Image
# Open the images
myimage1 = Image.open('myimageone.jpg')
myimage2 = Image.open('myimagetwo.jpg')
# Checking the sizes of the images
if myimage1.size == myimage2.size:
# Creatin a new image
mymerged_image = Image.new('RGB', (myimage1.size[0], myimage1.size[1] + myimage1.size[1]))
# Merging the images vertically
mymerged_image.paste(myimage1, (0, 0))
mymerged_image.paste(myimage2, (0, myimage1.size[1]))
# Saving the merged image
mymerged_image.save('mymerged_image_vertical.jpg')
else:
print('The images must have the same size to merge them using Pillow')
Выход
Ввод изображений
Выходное изображение
Заключение
Объединение изображений одинакового размера — обычная задача при обработке изображений в Python. В этой статье мы узнали, как объединить два изображения одинакового размера с помощью модуля Pillow Python 3. Мы увидели полные этапы объединения изображений с использованием Pillow в Python и два полных примера объединения изображений по горизонтали и вертикали. Следуя этим шагам, вы можете легко объединить изображения одного размера с помощью Pillow.