У меня есть изображение, которое уже было выложено, а затем сегментировано (за пределами моего конвейера). Сегментация проводилась отдельно для каждой плитки, и у меня есть соответствующие label_image
массивы.
Это просто массивы того же размера, что и плитки; Значение каждого элемента в массиве соответствует реальному объекту на плитке. Ноль означает фон, 1 означает, что первый объект et c. Например, если бы у нас было изображение с двумя объектами, одним ромбовидным и одним квадратом в верхнем левом и нижнем правом углу соответственно, то массив label_image
будет выглядеть так:
[0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 2, 2, 0,
0, 0, 0, 0, 2, 2, 2, 0,
0, 0, 0, 0, 2, 2, 2, 0,
0, 0, 0, 0, 0, 0, 0, 0]
В моем случае, скажем, исходное изображение выглядит так, как показано ниже слева, но сегментация была сделана на каждом из 4 меньших изображений, показанных ниже справа с красными контурами, и у меня есть четыре label_image
массива.
Как мне присоединиться к этим четырем меньшим label_images
, чтобы получить один label_image
для большого изображения, пожалуйста?
Объект (монета в этом примере), который находится на границах, появится в двух (как минимум) label_images
в конечном результате, однако они должны быть выражены как один объединенный незафиксированный объект, следовательно, они должны быть заданы то же число.
Помимо label_images
у меня также есть центроиды и все остальное, что исходит от функции regionprops
.
(изображение взято из здесь )