【问题标题】:How to convert 2D array into RGB image in python?如何在python中将二维数组转换为RGB图像?
【发布时间】:2020-12-26 04:58:38
【问题描述】:

我想将每个二维数组转换为 RGB 图像并将这个 RGB 图像返回给另一个函数,我该怎么做。我尝试通过PILplt 做到这一点,但它对我不起作用。我尝试了两个多星期来找到我能做到的方法。

任何帮助将不胜感激。

for c in [cD5,cD4,cD3,cD2,cD1]:
        x = np.linspace(0, 3844, len(c))
        f = interp1d(x, c)
        result.append(f(common_x))
        normalized_result = preprocessing.normalize(result)

【问题讨论】:

    标签: image image-processing 3d python-imaging-library rgb


    【解决方案1】:

    我认为这已经解决了,记住如果你想要一个 RGB 图像,你需要 3 个通道,这意味着一个具有形状 (NxMx3) 的矩阵。

    Convert 2d array to collored image in python

    干杯!

    编辑:

    这是一个示例,说明如何将 2D 数组堆叠成具有所需形状的 3D 数组。

    import numpy as np
    #some random arrays i just created for test
    r = np.array([3,3,3])
    g = np.array([6,6,6])
    b = np.array([9,9,9])
    bl = np.array([12,12,12])
    
    #create the stacked arrays
    stacked = np.dstack((r,g,b,bl))
    
    #check the shape
    print(np.shape(stacked))
    

    【讨论】:

    • 感谢您帮助我。我看到了这个,但它对我不起作用。我有 22 个大小为(5,3844)的二维数组。我想将它们堆叠成大小为 (22,5,3844) 的 3D 数组。我不知道该怎么做
    • 好的,如果你想将这些数组堆叠成一个 3D 数组,你需要使用 numpy 库。如果你有你的数组,现在使用np.dstack() 堆叠它们
    • 我可以把这个 2D 数组转换成图像并将它们堆叠在 3D 数组中吗??
    • 是的,您可以将初始维度数组 (5,3844) 转换为灰度图像,您可以使用:Converting 2D numpy array of grayscale values to a pil image 但同样,如果您想要 RGB 图像,您需要一个 NxMx3 矩阵。是的,您可以在将它们可视化为图像后将它们堆叠起来,因为图像主要是具有 1 个通道(灰度)或 3 个通道(RGB、LAB、HSV 等)的 2D 或 3D 数组
    猜你喜欢
    • 2015-08-15
    • 2019-08-13
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多