Я использую модули skimage.segmentation для поиска смежных сегментов в изображении.Например,

сегментов довольно приятно до

Я хочу иметь возможность просматривать отдельные области оригиналаизображение изолированно (такое, что приведенное выше изображение приведет к 6 приблизительно прямоугольным подизображениям).Я достиг некоторой степени успеха в этом, но это было сложно.Есть ли какой-либо ранее существующий модуль, который я могу использовать для этого?
Если нет, то будет полезен совет высокого уровня.
Подход на данный момент:
image_slic = seg.slic(image, n_segments=6)
borders = seg.find_boundaries(image_slic)
sub_images = []
new_seg = []
for every row of borders:
new_seg.append([])
for every pixel in every row:
if (pixel is not a border and is not already processed):
new_seg[-1].append(pixel)
Mark pixel as processed
elif (pixel is a border and is not already processed):
break
if (on the first pixel of a row OR the first unprocessed pixel):
sub_images.append(new_seg)
new_seg = []
При таком подходе я могу сгенерировать четыре региона из примераизображение, которое граничит с левой стороной без ошибок.Хотя это не показано в приведенном выше псевдокоде, я также дополняю сегменты прозрачными пикселями, чтобы сохранить их форму.Это дополнительное соображение затрудняет поиск подизображений с правой стороны.