Как преобразовать контурный массив NumPy в черно-белый массив? - PullRequest
0 голосов
/ 08 июля 2019

Я извлек контур двоичного кода numpy (содержащего только массив 0 и 1). После этого я делаю некоторые вычисления, которые немного изменят положение контуров.

Теперь я хочу преобразовать этот контурный массив обратно в двоичное двоичное изображение.

Допустим, у меня есть такой массив.

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 из этого контура?

Я не могу добавить их обоих, так как немного изменю этот массив контуров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...