gpt4 book ai didi

python - 如何在 python 中生成 RGB 立方体矩阵?

转载 作者:行者123 更新时间:2023-12-02 17:50:24 39 4
gpt4 key购买 nike

我试图创建一个大小为 256*256*3 的归一化矩阵,它代表这样的 RGB 立方体,

RGB Cube

我在opencv中尝试了以下代码-(我将numpy导入为np):

R = [np.true_divide(i, 256) for i in xrange(256)]
RGB_Cube = np.zeros((256, 256, 3), dtype=np.float64)
RGB_Cube[:, :, 0] = RGB_Cube[:, :, 1] = RGB_Cube[:, :, 2] = np.tile(R, (256,1))

我得到了这个:

Output of the code

我也试过这个(没有规范化 channel ):
R = [i for i in xrange(256)]
# R = np.linspace(0, 1, 256, endpoint=True)
RGB_Cube = np.zeros((256, 256, 3), dtype=np.float64)
RGB_Cube[:, :, 0] = RGB_Cube[:, :, 1] = RGB_Cube[:, :, 2] = np.tile(R, (256,1))

但我得到了一个白色的图像。

我想将此矩阵划分为子长方体。然后找到这些长方体的平均值。之后,我将使用这些信息来分割给定的图像!

我不知道这个问题有多容易,我找不到解决方法。任何人都可以帮忙吗?

谢谢

最佳答案

抱歉,我仍然无法理解您需要什么。假设您想要一个代表每个可能的 8 位 RGB 值的“立方体”,您将需要一个 256 x 256 x 256 (x3) 数组。不是 3 256 x 256 (x3) 阵列。

请注意 - 我真的认为你不想这样做。这样的数据(包括子多维数据集)可以按程序生成,而无需将所有内容存储在内存中。下面的代码存储了所有约 1600 万个 8 位 RGB 空间值,并且在腌制到磁盘时大约需要 140MB。

无论如何,这里是:

import pickle
import numpy as np

# full 8-bit RGB space
bits = 8
cube_dimension = 2**bits
full_rgb_space = np.ndarray((cube_dimension, cube_dimension, cube_dimension, 3),
dtype=np.uint8)

# this is really inefficient and will take a long time.
for i in range(cube_dimension):
print(i) # just to give some feedback while it's working
for j in range(cube_dimension):
for k in range(cube_dimension):
position = color = (i, j, k)
full_rgb_space[position] = color

# save it to see what you've got.
# this gives me a 140MB file.
with open('full_rgb_space.p', 'wb') as f:
pickle.dump(full_rgb_space, f)

关于python - 如何在 python 中生成 RGB 立方体矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22991809/

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