如何将轮廓numpy数组转换为黑白numpy数组?

时间:2019-07-08 18:40:32

标签: python numpy contour

我提取了一个numpy二进制文件的轮廓(仅包含0s和1s数组)。之后,我要对其进行一些计算,这将稍微改变轮廓的位置。

现在我想将此轮廓数组转换回一个numpy二进制图像。

假设我有一个像这样的数组。

import numpy as np
x = np.array([[0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0.],
              [0., 0., 1., 1., 0., 0.],
              [0., 0., 1., 1., 0., 0.],
              [0., 0., 1., 1., 0., 0.],
              [0., 0., 1., 1., 0., 0.],
              [0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0.]])

找到轮廓会给我,

from skimage import measure
contours = measure.find_contours(a, 0.)
k = np.zeros(a.shape).astype('float32')
for x in contours:
  for i, j in x:
    k[int(i)][int(j)] = 1.
print(k)

\\Output

array([[0., 0., 0., 0., 0., 0.],
       [0., 0., 1., 1., 0., 0.],
       [0., 1., 0., 0., 1., 0.],
       [0., 1., 0., 0., 1., 0.],
       [0., 1., 0., 0., 1., 0.],
       [0., 1., 0., 0., 1., 0.],
       [0., 0., 1., 1., 0., 0.],
       [0., 0., 0., 0., 0., 0.]], dtype=float32)

是否有办法从该轮廓返回到x?

我不能同时添加它们,因为我将稍稍更改此轮廓数组。

0 个答案:

没有答案