Mahotas: obtener el borde de la etiqueta en una región determinada

En este artículo veremos cómo podemos obtener el borde de la etiqueta en la imagen etiquetada dentro de la región dada 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.border 
 

Sintaxis: mahotas.labelled.border(imagen_etiquetada, i, j)
Argumento: toma el objeto numpy.ndarray, es decir, la imagen etiquetada y dos enteros como argumento  Nota
: un píxel está en el borde si tiene el valor i (o j)
Retorno: devuelve el objeto numpy.ndarray, es decir, la imagen etiquetada con la etiqueta del borde 
 

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 border for label at given point
relabeled = mahotas.labelled.border(labelled, 0, 20)
 
# showing the image
print("Labels With borders at given point")
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 imagwe
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 border for label at given point
relabeled = mahotas.labelled.border(labelled, 1, 0)
 
# showing the image
print("Labels With borders at given point")
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 *