Mahotas – Fraction of zeros in image

In this article we will see how we can get the fraction of zeros in the image in mahotas. Fraction of zeros is the percentage amount of statistical data which is zero. It is relevant in statistical models where a significant amount of objects has zero value.
In this tutorial we will use “luispedro” image, below is the command to load it.
mahotas.demos.load('luispedro')
Below is the luispedro image
In order to do this we will use np.mean method
Syntax : np.mean(img==0)
Argument : It takes image object as argument
Return : It returns numpy.float64
Note : Input image should be filtered or should be loaded as grey
In order to filter the image we will take the image object which is numpy.ndarray and filter it with the help of indexing, below is the command to do this
image = image[:, :, 0]
Example 1:
Python3
# importing various librariesimport numpy as npimport mahotasimport mahotas.demosfrom mahotas.thresholding import soft_thresholdfrom pylab import imshow, showfrom os import path# loading imagef = mahotas.demos.load('luispedro', as_grey = True)# showing imageprint("Image")# getting fraction of zeros in imagefraction = np.mean(f == 0)print("Fraction of zeros in image: {0}".format(fraction))imshow(f)show()# Transform using D8 Wavelet to obtain transformed image tt = mahotas.daubechies(f, 'D8')# Discard low-order bits:t /= 8t = t.astype(np.int8)# getting fraction of zeros in imagefraction = np.mean(t == 0)print("Fraction of zeros in transform (after division by 8): {0}".format(fraction))# showing transformed imageprint("Transformed Image")imshow(t)show() |
Output :
Example 2:
Python3
# importing required librariesimport mahotasimport numpy as npfrom pylab import imshow, showimport os# loading imageimg = mahotas.imread('dog_image.png')# filtering imageimg = img[:, :, 0]# getting fraction of zeros in imagefraction = np.mean(img == 0)print("Fraction of zeros in image: {0}".format(fraction))imshow(img)show()# Transform using D8 Wavelet to obtain transformed image tt = mahotas.daubechies(img, 'D8')# Discard low-order bits:t /= 8t = t.astype(np.int8)# getting fraction of zeros in imagefraction = np.mean(t == 0)print("Fraction of zeros in transform (after division by 8): {0}".format(fraction))# showing transformed imageprint("Transformed Image")imshow(t)show() |
Output :




