【问题标题】:generate image using matrix使用矩阵生成图像
【发布时间】:2022-12-11 22:44:02
【问题描述】:

我正在尝试将矩阵转换为图像。该矩阵的 (i, j) 项是网格位置 (i,j) 处像素的 e 值,0 表示黑色,1 表示介于两者之间的白色和灰色(因此 0.1 比 0.8 更暗,值更大小于 1 仍然是白色,小于 0 是黑色)。所以如果矩阵的每个条目都是 1 或 2,我期望得到一个白色图像,如果矩阵的每个条目是 -1 或 0,我期望得到黑色图像。

我努力了 plt.imshow(np.zeros((10,10))+1, cmap='gray')。我期待一个白色的图像,但我却全黑了。我不知道如何处理 cmap 以获得所需的颜色。 太感谢了!

【问题讨论】:

    标签: python matplotlib imshow


    【解决方案1】:

    听起来您想使用灰度颜色图来可视化您的矩阵。在这种情况下,您可以使用 Matplotlib 中的灰色颜色图来执行此操作。这是一个例子:

    import numpy as np
    import matplotlib.pyplot as plt
    
    # Create a random 10x10 matrix with values between 0 and 1
    matrix = np.random.rand(10, 10)
    
    # Use the gray colormap to visualize the matrix
    plt.imshow(matrix, cmap='gray')
    
    # Show the plot
    plt.show()
    

    这应该会产生一个图像,其中较亮的像素对应于矩阵中的较高值,而较暗的像素对应于较低的值。

    如果要确保图像中最暗的像素为黑色,最亮的像素为白色,可以使用 vmin 和 vmax 参数分别指定矩阵中的最小值和最大值。例如:

    # Use the gray colormap to visualize the matrix, with vmin=0 and vmax=1
    plt.imshow(matrix, cmap='gray', vmin=0, vmax=1)
    

    这将确保图像中最暗的像素对应于矩阵中的值 0,最亮的像素对应于矩阵中的值 1。

    【讨论】:

      猜你喜欢
      • 2018-02-23
      • 2019-05-18
      • 2014-01-09
      • 1970-01-01
      • 2016-02-15
      • 1970-01-01
      • 2014-06-07
      • 2021-04-15
      • 2019-02-27
      相关资源
      最近更新 更多