Рисование многоугольников на большом микроскопическом изображении с помощью Scikit-ImagePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Рисование многоугольников на большом микроскопическом изображении с помощью Scikit-Image

Сообщение Anonymous »

Я пытаюсь нарисовать полигоны на микроскопических изображениях, чтобы выделить важные области. Значение идентификатора и координаты для данного слоя (таким образом, набор вершин, которые соответствуют конкретному слою с формой (Y, Slice, X)). < /p>
Вот как список словарей выглядит:
example_image < /p>
Проблема - когда я пытаюсь запустить функцию, ответственные за рисование полиги, процесс - это очень много часов. Я понимаю, что это связано с большим размером (~ 20000x30000 пикселей), но есть ли способ сделать это быстрее, используя скимаж? < /P>
Я не могу использовать OpenCV или подушку.layer_colors = {
1: (255, 0, 0), # Red
2: (0, 255, 0), # Green
3: (0, 0, 255), # Blue
4: (255, 255, 0), # Yellow
5: (0, 255, 255), # Cyan
6: (255, 0, 255) # Magenta
}

def draw_full_res(image, coords, image_slice_idx, thickness=5, layer_colors=layer_colors):

disk_kernel = ski.morphology.disk(thickness)
mask = np.zeros(image.shape[:2], dtype=bool)

for idx in range(len(coords)):
if coords[idx]['slice'] == image_slice_idx:
layer = coords[_idx]['layer']
color = layer_colors.get(layer)

print('Progress layer: ', layer, '|', color)

for contours in coords[idx]['coords']:
# Draw only those polygons where number of vertices is greater than 5
if len(contours) > 5:
# Because shape for coords is (Y, SLICE, X)
y_coords = contours[:, 0].astype(int)
x_coords = contours[:, 2].astype(int)

# Create polygon
rr, cc = ski.draw.polygon_perimeter(x_coords, y_coords, shape=image.shape[:2])

mask[rr, cc] = True
# Make polygon thicker
mask = ski.morphology.dilation(mask, disk_kernel)

image[mask] = color

output_path = f'{image_slice_idx}_slice.png'
ski.io.imsave(output_path, image)


Подробнее здесь: https://stackoverflow.com/questions/796 ... ikit-image
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»