python - 如何在 Python 中将图像数组转换为二维数组

标签 python arrays rgb reshape

我有一个这种形状的 numpy 图像数组:

(50000, 32, 32, 3)
  • 50000为图片数量
  • 32, 32是高和宽
  • 3 是范围为 0-1
  • 的 RGB 值

我想将其转换为二维形状:

(50000, 1024)

这里我将 50000 张图像排成一行, RGB 值将被转换为十六进制值 我经历了很多到堆栈溢出的转换过程,并且找到了一些。 我知道,如果我的数组是一个具有已转换值的 3D 数组,我可以轻松地使用 reshape() 函数将其转换为 2D。 现在我要搜索的是转换 RGB 值和 reshape 数组的最简单方法

这是否可以在 1 行或两行中实现,还是我应该使用外部函数?

最佳答案

首先使用您喜欢的任何函数将最后一个维度中的 RGB 值转换为 HEX 值。这SO answer可能有帮助。

Reshape 然后适用于任意数量的维度:

import numpy as np

def rgb2hex(r, g, b):
    return '#%02x%02x%02x' % (r, g, b)

vfunc = np.vectorize(rgb2hex)

a = (np.random.uniform(0,1,(10,5,5,3))*255).astype(int)

c = vfunc(a[:,:,:,0], a[:,:,:,1], a[:,:,:,2])

c.reshape((10,25))

关于python - 如何在 Python 中将图像数组转换为二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55298574/

相关文章:

python - 如何在 Flask Python 中渲染模板然后重定向到外部 URL

html - 使用 Google 表单自定义颜色。

python - 对同等大小的图像进行逐像素比较,找到每个像素最常见的颜色

python - 在 Python Pandas MultiIndex 中重命名名称

python 循环遍历用户条目

python - 如何为 selenium webdriver 设置 socks5 代理? Python

javascript - 如何过滤掉数组中的 NaN, null, 0, false (JS)

javascript - 如何在发布请求的键的变量内发送值

python - 更改 numpy 数组中字符串的位置

video - FFMPEG 将 RGBA 图像序列拆分为 rgb.mp4 和 alpha.mp4