Mahotas – Fracción de ceros en imagen

En este artículo veremos cómo podemos obtener la fracción de ceros de la imagen en mahotas. La fracción de ceros es la cantidad porcentual de datos estadísticos que es cero. Es relevante en modelos estadísticos donde una cantidad significativa de objetos tiene valor cero.
En este tutorial usaremos la imagen «luispedro», a continuación se muestra el comando para cargarla. 
 

mahotas.demos.load('luispedro')

A continuación se muestra la imagen de luispedro 
 

Para hacer esto usaremos el método np.mean 
 

Sintaxis: np.mean(img==0)
Argumento: Toma el objeto de imagen como argumento
Retorno: Devuelve numpy.float64 
 

Nota: la imagen de entrada debe filtrarse o debe cargarse como gris
. 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 various libraries
import numpy as np
import mahotas
import mahotas.demos
from mahotas.thresholding import soft_threshold
from pylab import imshow, show
from os import path
 
# loading image
f = mahotas.demos.load('luispedro', as_grey = True)
 
 
# showing image
print("Image")
 
# getting fraction of zeros in image
fraction = np.mean(f == 0)
 
print("Fraction of zeros in image: {0}".format(fraction))
imshow(f)
show()
 
 
 
# Transform using D8 Wavelet to obtain transformed image t
t = mahotas.daubechies(f, 'D8')
 
# Discard low-order bits:
t /= 8
t = t.astype(np.int8)
 
 
# getting fraction of zeros in image
fraction = np.mean(t == 0)
 
print("Fraction of zeros in transform (after division by 8): {0}".format(fraction))
 
# showing transformed image
print("Transformed Image")
imshow(t)
show()

Producción : 
 

Ejemplo 2: 
 

Python3

# importing required libraries
import mahotas
import numpy as np
from pylab import imshow, show
import os
 
 
# loading image
img = mahotas.imread('dog_image.png')
 
# filtering image
img = img[:, :, 0]
 
 
# getting fraction of zeros in image
fraction = np.mean(img == 0)
 
print("Fraction of zeros in image: {0}".format(fraction))
imshow(img)
show()
 
 
 
# Transform using D8 Wavelet to obtain transformed image t
t = mahotas.daubechies(img, 'D8')
 
# Discard low-order bits:
t /= 8
t = t.astype(np.int8)
 
 
# getting fraction of zeros in image
fraction = np.mean(t == 0)
 
print("Fraction of zeros in transform (after division by 8): {0}".format(fraction))
 
# showing transformed image
print("Transformed Image")
imshow(t)
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 *