Конвертировать полигоны (на изображении) в маски - PullRequest
0 голосов
/ 21 марта 2020

У меня есть некоторые изображения и связанные с ними объекты, обозначенные правдой. Например, это изображение показывает выделенные объекты для одного из исходных изображений выделенные объекты синим цветом

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

Используя Контуры, я могу примерно достичь этого, но у меня есть две проблемы:

1- Почему я получаю повторные маски? (пожалуйста, обратитесь к приложенному фрагменту) 2- Как решить проблему с двумя касающимися предметами

from skimage import io
from skimage import measure
import matplotlib.pyplot as plt

image = io.imread('path/to/the/attached/image')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
contours = measure.find_contours(gray, 0.1)
for n, contour in enumerate(contours):
r_mask = np.zeros_like(gray, dtype='bool')
r_mask[np.round(contour[:, 0]).astype('int'), np.round(contour[:, 
1]).astype('int')] = 1

r_mask = ndimage.binary_fill_holes(r_mask)
io.imshow(r_mask)
plt.show()

Спасибо

...