Mahotas – Etiquetas Filtrantes

En este artículo veremos cómo podemos filtrar las etiquetas de la imagen etiquetada en mahotas. La etiqueta de filtrado es similar a implementar la función de reetiquetado, pero la diferencia está en el filtrado que eliminaremos, es decir, filtraremos las etiquetas en el momento de llamar al método de filtrado y el filtrado nos dará una nueva imagen etiquetada y una cantidad de etiquetas. Usamos el método mahotas.label para etiquetar la imagen
. Para esto, vamos a usar la imagen de microscopía fluorescente de un punto de referencia 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 
 

Las imágenes etiquetadas son imágenes enteras donde los valores corresponden a diferentes regiones. Es decir, la región 1 son todos los píxeles que tienen valor 1, la región dos son los píxeles con valor 2, y así sucesivamente.
Para hacer esto, usaremos el método mahotas.label.filter_labelled 
 

Sintaxis: mahotas.label.filter_labelled(label_image, filter1, filter2)
Argumento: toma el objeto de imagen etiquetado y los filtros como argumento
Retorno: devuelve la imagen etiquetada y el número entero, es decir, el número de etiquetas 
 

Nota: los filtros pueden ser filtros de etiqueta de borde, cualquier tamaño máximo.
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)
 
# printing number of labels
print("Count : " + str(n_nucleus))
 
# showing the labelled image
print("Labelled Image")
imshow(labelled)
show()
 
 
# filtering the label image
# adding border filter
relabelled, n_left = mahotas.labelled.filter_labelled(labelled, remove_bordering = True)
 
# showing number of labels
print("Count : " + str(n_left))
 
# showing the image
print("No border Label")
imshow(relabelled)
show()

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)
 
# printing number of labels
print("Count : " + str(n_nucleus))
 
# showing the labelled image
print("Labelled Image")
imshow(labelled)
show()
 
 
# filtering the label image
# adding border filter
relabelled, n_left = mahotas.labelled.filter_labelled(labelled, remove_bordering = True)
 
# showing number of labels
print("Count : " + str(n_left))
 
# showing the image
print("No border Label")
imshow(relabelled)
show()

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)
 
# printing number of labels
print("Count : " + str(n_nucleus))
 
# showing the labelled image
print("Labelled Image")
imshow(labelled)
show()
 
 
# filtering the label image
# adding border filter
relabelled, n_left = mahotas.labelled.filter_labelled(labelled, remove_bordering = True)
 
# showing number of labels
print("Count : " + str(n_left))
 
# showing the image
print("No border Label")
imshow(relabelled)
show()

Producción : 
 

Ejemplo 2: 
 

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)
 
# printing number of labels
print("Count : " + str(n_nucleus))
 
# showing the labelled image
print("Labelled Image")
imshow(labelled)
show()
 
 
# filtering the label image
# adding max size filter
relabelled, n_left = mahotas.labelled.filter_labelled(labelled, max_size = 7000)
 
# showing number of labels
print("Count : " + str(n_left))
 
# showing the image
print("Max size 7000 Label")
imshow(relabelled)
show()

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)
 
# printing number of labels
print("Count : " + str(n_nucleus))
 
# showing the labelled image
print("Labelled Image")
imshow(labelled)
show()
 
 
# filtering the label image
# adding max size filter
relabelled, n_left = mahotas.labelled.filter_labelled(labelled, max_size = 7000)
 
# showing number of labels
print("Count : " + str(n_left))
 
# showing the image
print("Max size 7000 Label")
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 *