Mahotas – Obtener cuadros delimitadores de imagen etiquetada

En este artículo veremos cómo podemos obtener los cuadros delimitadores de todos los objetos en la imagen etiquetada en mahotas. Para ello vamos a utilizar la imagen de microscopía fluorescente de un benchmark de segmentación nuclear. Podemos obtener la imagen con la ayuda del comando que se indica a continuación. 
 

mhotas.demos.nuclear_image()

A continuación se muestra la imagen_nuclear 
 

Para hacer esto usaremos el método mahotas.labelled.bbox 
 

Sintaxis: mahotas.labelled.bbox (imagen_etiquetada)
Argumento: toma el objeto numpy.ndarray como argumento, es decir, la imagen etiquetada
Retorno: devuelve el objeto numpy.ndarray, es decir, la imagen del cuadro delimitador 
 

Nota: La entrada de este debe ser el objeto de imagen filtrado que está etiquetado. 
Para filtrar la imagen, tomaremos el objeto de imagen que es numpy.ndarray y lo filtraremos con la ayuda de la indexación, a continuación se muestra el comando para hacer esto. 
 

image = image[:, :, 0]

Ejemplo 1 : 
 

Python3

# importing required libraries
import mahotas
import numpy as np
from pylab import imshow, show
import os
 
# loading nuclear image
f = mahotas.demos.load('nuclear')
 
# setting filter to the image
f = f[:, :, 0]
 
# setting gaussian filter
f = mahotas.gaussian_filter(f, 4)
 
# setting threshold value
f = (f> f.mean())
 
# creating a labelled image
labelled, n_nucleus = mahotas.label(f)
 
 
# showing the labelled image
print("Labelled Image")
imshow(labelled)
show()
 
# getting bounding boxes
relabeled = mahotas.labelled.bbox(labelled)
 
# showing the image
print("Bounding Boxes")
imshow(relabelled)
show()

Producción : 
 

Ejemplo 2: 
 

Python3

# importing required libraries
import numpy as np
import mahotas
from pylab import imshow, show
  
# loading image
img = mahotas.imread('dog_image.png')
    
# filtering the image
img = img[:, :, 0]
     
# setting gaussian filter
gaussian = mahotas.gaussian_filter(img, 15)
  
# setting threshold value
gaussian = (gaussian > gaussian.mean())
  
# creating a labelled image
labelled, n_nucleus = mahotas.label(gaussian)
   
print("Labelled Image")
# showing the gaussian filter
imshow(labelled)
show()
  
# getting bounding boxes
relabelled = mahotas.labelled.bbox(labelled)
 
# showing the image
print("Bounding Boxes")
imshow(relabelled)
show()

Producción : 
 

Publicación traducida automáticamente

Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *