如何垂直连接三个或更多图像?
How to concatenate three or more images vertically?
我尝试垂直连接三个图像,我需要一些有关 code/function 的帮助。到目前为止,我导入了一张图像并裁剪了 3 张相同尺寸的小图像。现在我想将它们连接成一个长而窄的图像。但是,我找不到合适的函数,或者即使找到了一个,当我将它应用到我的代码时也会收到一条错误消息。
我已经试过将我的三张图片做一个合集然后使用函数skimage.io.concatenate_images(sf_collection),但是这样会导致4维图片无法可视化
sf_collection = (img1,img2,img3)
concat_page = skimage.io.concatenate_images(sf_collection)
我的预期输出是将三个图像垂直连接成一个图像(又长又窄)。
我从未使用过 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)
其中returns:
如果您查看 skimage.io.concatenate_images
docs,它也在使用 np.concatenate
。该函数似乎提供了一种数据结构来保存图像集合,但不会合并为单个图像。
像这样:
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))
使用以下方式堆叠 side-by-side(水平):
result = np.hstack((yellow,red,blue))
我尝试垂直连接三个图像,我需要一些有关 code/function 的帮助。到目前为止,我导入了一张图像并裁剪了 3 张相同尺寸的小图像。现在我想将它们连接成一个长而窄的图像。但是,我找不到合适的函数,或者即使找到了一个,当我将它应用到我的代码时也会收到一条错误消息。
我已经试过将我的三张图片做一个合集然后使用函数skimage.io.concatenate_images(sf_collection),但是这样会导致4维图片无法可视化
sf_collection = (img1,img2,img3)
concat_page = skimage.io.concatenate_images(sf_collection)
我的预期输出是将三个图像垂直连接成一个图像(又长又窄)。
我从未使用过 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)
其中returns:
如果您查看 skimage.io.concatenate_images
docs,它也在使用 np.concatenate
。该函数似乎提供了一种数据结构来保存图像集合,但不会合并为单个图像。
像这样:
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))
使用以下方式堆叠 side-by-side(水平):
result = np.hstack((yellow,red,blue))