【问题标题】:How to save ax.plot information as pixel data?如何将 ax.plot 信息保存为像素数据?
【发布时间】:2020-10-31 08:02:49
【问题描述】:

给出一个使用 ax.plot()在给定坐标之间画线的简单代码示例

import matplotlib.pyplot as plt
x_values = [0, 2, 4, 5]
y_values = [3, 1, 5, 2]
fig, ax = plt.subplots(1, 1)
ax.set_xlim(0,5)
ax.set_ylim(0,5)
ax.plot(x_values, y_values)
plt.show()

为了进行图像处理,我需要该图像的原始像素数据(黑白就足够了),在给定的像素大小,让它是[MxN],只给定线端点坐标 我正在查看的数据将是一个数组,其维度为[MxN],仅包含01

当然需要插值,具体取决于像素大小。 在我的特定用例中,我使用ax.plot() 绘制了非常复杂的线条,因此我无法手动插入每一行。

正如我所见,有 ax.imshow(), 但这不会返回矩阵/向量。 有人有想法吗?

【问题讨论】:

    标签: python image numpy matplotlib


    【解决方案1】:

    您可以将图像保存为 jpg,然后将其作为 numpy 数组打开。您可以检查形状以确保它符合您的喜好。

    import numpy as np 
    from PIL import Image
    
    i = Image.open('name of your jpg.jpg')
    array = np.asarray(i)
    print(array.shape)
    

    如果你想改变形状:

    array.flatten().reshape(#M dim, #N dim)
    

    【讨论】:

    • 谢谢!为了导入简单的灰度值,命令为i=Image.open('myjpg.jpy').convert('L'),否则在RBGA中给出。
    猜你喜欢
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多