Objetos e rótulos

Análise de Imagens Biomédicas em Python

Stephen Bailey

Instructor

Segmentação divide a imagem em partes

segmentação de células

segmentação do cérebro

Análise de Imagens Biomédicas em Python

Sunnybrook Cardiac Database

Frações de ejeção: a proporção de sangue bombeada do ventrículo esquerdo (LV).

ilustração de fração de ejeção

Imagem cardíaca

Análise de Imagens Biomédicas em Python

Rotulando componentes da imagem

máscara cardíaca 2D

Análise de Imagens Biomédicas em Python

Rotulando componentes da imagem

import scipy.ndimage as ndi
im=imageio.imread('SCD4201-2d.dcm')
filt=ndi.gaussian_filter(im, 
                         sigma=2)
mask = filt > 150

labels, nlabels = ndi.label(mask)
nlabels
14
plt.imshow(labels, cmap='rainbow')
plt.axis('off')
plt.show()

células rotuladas

Análise de Imagens Biomédicas em Python

Seleção de rótulos

Selecionar um único rótulo na imagem:

np.where(labels == 1, im, 0)

Um rótulo

Selecionar vários rótulos na imagem:

np.where(labels < 3, im, 0)

Dois rótulos

Análise de Imagens Biomédicas em Python

Extração de objetos

  • Caixa delimitadora (bounding box): intervalo de pixels que enclausura totalmente um objeto

  • ndi.find_objects() retorna uma lista de coordenadas de caixas delimitadoras

imagem rotulada com caixas delimitadoras

Análise de Imagens Biomédicas em Python

Extração de objetos

labels, nlabels = ndi.label(mask)
boxes = ndi.find_objects(labels)

boxes[0]
(slice(116,139), slice(120, 141))

múltiplas caixas na imagem

Análise de Imagens Biomédicas em Python

Vamos praticar!

Análise de Imagens Biomédicas em Python

Preparing Video For Download...