首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用numpy.concatenate合并图像

使用numpy.concatenate合并图像
EN

Stack Overflow用户
提问于 2021-08-13 01:52:22
回答 1查看 119关注 0票数 0

我想使用this answer中的代码将5个png图形组合成一个png或jpg文件。我希望最终的数字看起来像这样:

而且pngs不应该调整大小。我使用了concatenate函数:

代码语言:javascript
复制
import numpy as np
from PIL import Image
imgs = ['pics/myfig1.png',
        'pics/myfig2.png',
        'pics/myfig3.png',
        'pics/myfig4.png',
        'pics/myfig5.png']
concatenated = Image.fromarray(
  np.concatenate(
    np.array([
        [imgs[0], imgs[1], imgs[2]],
        [imgs[3], imgs[4]]])
  )
)
concatenated.save( 'finalfig.jpg' )

但是我得到了这个错误:

代码语言:javascript
复制
    raise TypeError("Cannot handle this data type: %s, %s" % typekey) from e
TypeError: Cannot handle this data type: (1, 1), <U44
EN

回答 1

Stack Overflow用户

发布于 2021-08-13 07:00:20

连接是一个数组操作。它将多个数组合并为一个数组。每个图像都可以看作是一个具有高度x宽度x num_channels形状的数组(而不是高度和宽度被交换)。

如果我拍摄3张200 x 100像素的灰度图像,我会得到3个100 x 200 x 1的阵列。如果我将它们连接起来,我会得到1个100 x 200 x 3的阵列。这个连接的图像可以是200 x 100的彩色(RGB)图像。

但如果你有5个图像,这是不可能的,因为图像要么是灰色(1),要么是RGB (3)或RGBA (4)。

如果你想将多个图像一个接一个地放到一个更大的图像中,需要为枕头图像使用https://pillow.readthedocs.io/en/stable/reference/Image.html,或者为opencv/numpy图像使用tomni.img_paste

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68765906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档