如何将python列表的点转换为numpy图像数组?

Ale*_*lex 8 python numpy scipy

我有一个python的点列表(x/y坐标):

   [(200, 245), (344, 248), (125, 34), ...]
Run Code Online (Sandbox Code Playgroud)

它代表2d平面上的轮廓.我想使用一些numpy/scipy算法进行平滑,插值等.它们通常需要numpy数组作为输入.例如scipy.ndimage.interpolation.zoom.

从我的积分列表中获取正确的numpy数组的最简单方法是什么?

编辑:我在我的问题中添加了"图像"这个词,希望现在很清楚,我真的很抱歉,如果它有点误导.我的意思的例子(指向二进制图像数组).

输入:

[(0, 0), (2, 0), (2, 1)]
Run Code Online (Sandbox Code Playgroud)

输出:

[[0, 0, 1],
 [1, 0, 1]]
Run Code Online (Sandbox Code Playgroud)

在这里舍入接受的答案是工作样本:

import numpy as np

coordinates = [(0, 0), (2, 0), (2, 1)]

x, y = [i[0] for i in coordinates], [i[1] for i in coordinates]
max_x, max_y = max(x), max(y)

image = np.zeros((max_y + 1, max_x + 1))

for i in range(len(coordinates)):
    image[max_y - y[i], x[i]] = 1
Run Code Online (Sandbox Code Playgroud)

seb*_*erg 7

啊,现在更好了,所以你确实拥有了你想要填补的所有要点......那么它非常简单:

image = np.zeros((max_x, max_y))
image[coordinates] = 1
Run Code Online (Sandbox Code Playgroud)

您可以先创建一个数组,但这不是必需的.