Dans ce qui suit, on ouvre une image, que l'on convertis en niveaux de gris, avant de lui appliquer une transformée en ondelettes discrètes (DWT), de la famille daubechie 1, de niveau 2.
>>> import Image as im >>> import pywt >>> from numpy import * >>> dd=im.open('cover.jpeg') >>> dd=dd.convert('L') >>> mat = array(dd.getdata()).reshape(dd.size) >>> mat.shape (300, 300) >>> cA2,(cH2,cV2,cD2),(cH1,cV1,cD1) = pywt.wavedec2(mat, 'db1',level=2)
Dans ce qui précède, cAn est la matrice d'approximation, cHn, cVn et cDn sont les matrices de détail, respectivement horizontal, vertical et diagonal (n est le niveau de décomposition).
On remplace alors la matrice cH1, par des zéros, et on reconstruit l'image :
>>> CH1=zeros(cH1.shape) >>> zz=im.new('L',dd.size) >>> zz.putdata(pywt.waverec2((cA2,(cH2,cV2,cD2),(CH1,cV1,cD1)), 'db1').flatten())
On affiche l'original, et l'image modifiée...
>>> zz.show() >>> dd.show()