gpt4 book ai didi

python - 如何垂直合并/附加/堆叠/粘贴文件夹中的所有图像到新图像

转载 作者:行者123 更新时间:2023-12-02 16:59:19 25 4
gpt4 key购买 nike

我想将所有图片合并到一个文件夹中,然后将它们堆叠,水平附加。

import os
from PIL import Image
allfiles = os.listdir(os.getcwd())
imlist =[filename for filename in allfiles if filename[-4:] in [".png", ".PNG"]]
N = len(imlist)
w, h = Image.open(imlist[0]).size

total_width = w * N
max_height = h

new_im = Image.new('RGB', (total_width, max_height))

for i in range(1,N):
img = Image.open(imlist[i])
offset = 0
appendedimages.paste(img, (x_offset,0))
offset += img.size[0]

appendedimages.save('test.jpg')

看来,使用此选项仅显示最后一张图像。有人知道为什么会这样吗?
我也尝试过
import cv2
import os
import numpy as np


allfiles = os.listdir(os.getcwd())
imlist =[filename for filename in allfiles if filename[-4:] in [".png", ".PNG"]]
N = len(imlist)
for i in range(1,N):
img = cv2.imread(imlist[i])

horizontalAppendedImg = np.hstack(img)
cv2.imshow('Horizontal Appended', horizontalAppendedImg)
cv2.waitKey(0)
cv2.destroyAllWindows()
但这也不起作用。
谁能帮我这个?还是有一个更简单的解决方案?

最佳答案

图像是numpy数组。只要它们具有相同的尺寸,就可以np.hstack它们。

imlist =[cv2.imread(filename) for filename in allfiles if filename[-4:] in [".png", ".PNG"]]
concat_img = np.hstack(imlist)

cv2.imshow('Horizontal Appended', concat_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
说明:
  • 将所有图像读入具有列表理解的列表:图像列表/ np.arrays
  • 使用np.hstack()将水平方向上的所有图像连接起来。如果遇到问题,可以对np.concatenate()np.stack()使用更通用的串联工具。
  • 关于python - 如何垂直合并/附加/堆叠/粘贴文件夹中的所有图像到新图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62950378/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com