In [1]:
import numpy as np
import pyrtools
from PIL import Image

import matplotlib.pyplot as plt
%matplotlib inline

from IPython.core.debugger import Tracer

In [2]:
def show(gray_img):
    plt.imshow(gray_img, cmap='gray')

In [3]:
img = Image.open('./einsteinCorrect.pgm')
img = np.asarray(img)

In [4]:
lpyr = pyrtools.Lpyr(img)
lpyr.showPyr()



In [5]:
lpyr_recon = lpyr.reconPyr([0, 3, 5])
show(lpyr_recon)



In [6]:
def norm_img(img, dmin=0, dmax=255):
    vmax = np.max(img)
    vmin = np.min(img)
    return (img - vmin + dmin) / (vmax - vmin) * dmax


recon_error = [
    np.sqrt(np.mean(
        (img - norm_img(lpyr.reconPyr(range(level)), img.min(), img.max())) ** 2
    )) for level in range(1, 6)
]

plt.plot(range(1, 6), recon_error)
plt.title("reconstruction RMS error by reconstruction levels")
plt.grid()
plt.show()



In [7]:
spyr = pyrtools.Spyr(img, 4, 'sp3Filters')

In [8]:
spyr.showPyr()



In [15]:
spyr.reconPyr(1)


/home/aiga/.pyenv/versions/anaconda3-4.4.0/lib/python3.6/site-packages/ipykernel_launcher.py:1: DeprecationWarning: `Tracer` is deprecated since version 5.1, directly use `IPython.core.debugger.Pdb.set_trace()`
  """Entry point for launching an IPython kernel.
Out[15]:
<IPython.core.debugger.Tracer at 0x7fd40c072748>

In [10]:
wpyr = pyrtools.Wpyr(img)

In [11]:
wpyr.showPyr()



In [12]:
sfpyr = pyrtools.SFpyr(img)

In [13]:
sfpyr.showPyr()