En este artículo veremos cómo podemos obtener el perímetro de objetos en imágenes binarias 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
Un píxel es parte del perímetro de un objeto si su valor es uno y hay al menos un píxel de valor cero en su vecindad. De forma predeterminada, la vecindad de un píxel es 4 píxeles más cercanos, pero si podemos configurarlo en 8, se considerarán los 8 píxeles más cercanos.
Para hacer esto usaremos el método mahotas.labelled.bwperim
Sintaxis: mahotas.labeled.bwperim (imagen, n)
Argumento: toma el objeto numpy.ndarray, es decir, la imagen etiquetada se prefiere en blanco y negro y un número entero, es decir, los píxeles más cercanos, lo cual es opcional
Retorno: devuelve el objeto numpy.ndarray, es decir, una imagen booleana
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 perimeters relabelled = mahotas.labelled.bwperim(labelled) # showing the image print("Perimeters Image") 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 perimeters relabeled = mahotas.labelled.bwperim(labelled, 8) # showing the image print("Perimeters Image") 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