Logo elodees  elodees

A caring AI for a better world













Only alphabetic characters accented or not as well as the space are accepted

Logo IA




Daubechies wavelet





No account yet ?

Sign up to access all content


Free image provided by pexel.com




Free image provided by pexel.com




Example of transforming an image using the daubechies wavelet library using the Mahotas Python library for image analysis.

Tested in Anaconda and Python 3.7

import cv2
import mahotas
from matplotlib import pyplot as plt
 
def showimage(myimage, figsize=[10,10]):
    if (myimage.ndim>2):  #This only applies to RGB or RGBA images (e.g. not to Black and White images)
        myimage = myimage[:,:,::-1] #OpenCV follows BGR order, while matplotlib likely follows RGB order
         
    fig, ax = plt.subplots(figsize=figsize)
    ax.imshow(myimage, cmap = 'gray', interpolation = 'bicubic')
    plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
    plt.show()
 
img = cv2.imread('pexels-bestbe-models-2412691.jpg')
showimage(img)
img = img[:, :, 0]
print("Image") 
showimage(img)
 
t = mahotas.daubechies(img, 'D8') 
print("Transformed Image") 
showimage(t)
 

pip install mahotas



Original image RGB

Free image provided by pexel.com

Original image Grayscale

Free image provided by pexel.com


Image Transformed by Mahotas using the Daubechies wavelet

Free image provided by pexel.com




Daubechies wavelet coefficients



Free image provided by pexel.com

daubechies_wavelet_coefficients - GitHub





The Daubechies family of wavelets for several different orders of vanishing moments and several levels of refinement.

Tested in Anaconda and Python 3.7

import pywt
import matplotlib.pyplot as plt
 
db_wavelets = pywt.wavelist('db')[:5]
print(db_wavelets)
 
fig, axarr = plt.subplots(ncols=5, nrows=5, figsize=(20,16))
fig.suptitle('Daubechies family of wavelets', fontsize=16)
for col_no, waveletname in enumerate(db_wavelets):
    wavelet = pywt.Wavelet(waveletname)
    no_moments = wavelet.vanishing_moments_psi
    family_name = wavelet.family_name
    for row_no, level in enumerate(range(1,6)):
        wavelet_function, scaling_function, x_values = wavelet.wavefun(level = level)
        axarr[row_no, col_no].set_title("{} - level {}\n{} vanishing moments\n{} samples".format(
            waveletname, level, no_moments, len(x_values)), loc='left')
        axarr[row_no, col_no].plot(x_values, wavelet_function, 'bD--')
        axarr[row_no, col_no].set_yticks([])
        axarr[row_no, col_no].set_yticklabels([])
plt.tight_layout()
plt.subplots_adjust(top=0.9)
plt.show()
 


Free image provided by pexel.com










Welcome, my name is Eric Soupet and I am the administrator of the site elodees.com. elodees.com is a state of the art of Artificial Intelligence and aims to be collaborative, you can now offer content such as articles, events, tutorials, ... so don't hesitate !

Platform images credit : Pixabay - Pixabay License | Pexels - Pexels License