Как объединить три или более изображения по вертикали? - PullRequest
1 голос
/ 26 июня 2019

Я пытаюсь объединить три изображения по вертикали, и мне нужна помощь с кодом / функцией.До сих пор я импортировал одно изображение и обрезал 3 меньших изображения с одинаковым размером.Теперь я хочу объединить их в одно изображение, которое будет длинным, но узким.Тем не менее, я не могу найти подходящую функцию или, даже если я нахожу ее, я получаю сообщение об ошибке, когда применяю ее к своему коду.

Я уже пытался создать коллекцию из трех моих фотографий и затем использоватьФункция skimage.io.concatenate_images (sf_collection), но это приводит к четырехмерному изображению, которое невозможно визуализировать.

sf_collection = (img1,img2,img3)
concat_page = skimage.io.concatenate_images(sf_collection)

Мой ожидаемый результат - три изображения, которые будут объединены вертикально в одном изображении (очень длинныйи узкий).

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Как это:

import numpy as np

h, w = 100, 400

yellow = np.zeros((h,w,3),dtype=np.uint8) + np.array([255,255,0],dtype=np.uint8)
red    = np.zeros((h,w,3),dtype=np.uint8) + np.array([255,0,0],dtype=np.uint8)
blue   = np.zeros((h,w,3),dtype=np.uint8) + np.array([0,0,255],dtype=np.uint8)

# Stack vertically
result = np.vstack((yellow,red,blue))

enter image description here

Используйте следующее, чтобы сложить бок о бок (горизонтально):

result = np.hstack((yellow,red,blue))
1 голос
/ 26 июня 2019

Я никогда не использовал skimage.io.concatenate, но я думаю, что вы ищете np.concatenate. По умолчанию axis=0, но вы можете указать axis=1 для горизонтального стека. Это также предполагает, что вы уже загрузили изображения в их массив из.

from scipy.misc import face
import numpy as np
import matplotlib.pyplot as plt

face1 = face()
face2 = face()
face3 = face()

merge = np.concatenate((face1,face2,face3))

plt.gray()
plt.imshow(merge)

, который возвращает: enter image description here

Если вы посмотрите на skimage.io.concatenate_images документы , он также использует np.concatenate. Похоже, что эта функция обеспечивает структуру данных для хранения коллекций изображений, но не объединяет их в одно изображение.

...