gpt4 book ai didi

python - 将 3d 数组组合成 numpy 中的 4d 数组

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:53 24 4
gpt4 key购买 nike

我有 3 张相同大小的图片,我使用 matplotlib.image.imread 读取每一张返回 3D numpy数组。

(Height, Width, ChannelsNumber) # ChannelsNumber = 3 for RGB

现在,我想像这样将 3 个图像合并到一个 4D numpy 数组中:

(Height, Width, ChannelsNumber, NumberOfImages)

意思是,位置 (X,Y) 的第 3 维数组将不再包含像素 (X,Y) 的 RGB 值,但将包含 3 个数组,一个用于每个 channel (),其中每个数组将包含 3 个 R、G、r B 值(对于 3 个图像)

  • 位置 X,Y,0 的数组将包含图像 1,2,3 在像素 X,Y 的所有 RED 值/li>
  • 位置 X,Y,1 的数组将包含图像 1、2、3 在像素 X,Y 的所有 GREEN 值
  • 位置 X,Y,2 的数组将包含图像 1、2、3 在像素 X,Y 的所有蓝色值

例如:

(10,15,0) 将是一个数组,其中包含像素 (10,15)

的所有图像的所有红色值

这是我尝试过的:

import numpy as np
import os
import matplotlib.image as mpimg

img1 = mpimg.imread('./image1.jpg')
img2 = mpimg.imread('./image2.jpg')
img3 = mpimg.imread('./image3.jpg')

x = np.dstack((img1, img2, img3))

这将返回一个 3D 数组,其中第 3 维是一个包含此格式图像的 RGB 值的数组:

[R-img1, B-img1, G-img1, R-img2, B-img2, G-img2, R-img3, B-img3, G-img3]

我想要的是:

[ 
[R-img1, R-img2, R-img3,],
[R-img1, B-img2, -img3,],
[B-img1, B-img2, B-img3,]
]

谢谢!

最佳答案

答案是 Scott 评论的那个

x = np.stack((img1, img2, img3), axis = -1)

关于python - 将 3d 数组组合成 numpy 中的 4d 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58784949/

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