1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
import numpy as np
import matplotlib.pyplot as plt
import PIL.Image
from scipy.signal import convolve2d as conv2
from skimage import color, data, restoration
rng = np.random.default_rng()
spectre = PIL.Image.open(/home/wozwald/Documents/000Fac/S6/Stages/Stage IAP/Docs/ESO - Spectroscopy_fichiers/Spectres/EFOSC_Corona.sp1_2019-07-02T20_40.fits/EFOSC_Corona.sp1_2019-07-02T20_40.png)
psf = np.ones((5, 5)) / 25
spectre = conv2(spectre, psf, 'same')
spectre_noisy = spectre.copy()
spectre_noisy += (rng.poisson(lam=25, size=spectre.shape) - 10) / 255.
deconvolved_RL = restoration.richardson_lucy(spectre_noisy, psf, iterations=30)
fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(8, 5))
plt.gray()
for a in (ax[0], ax[1]):
a.axis('off')
ax[0].imshow(spectre)
ax[0].set_title('Original Data')
ax[1].imshow(deconvolved_RL, vmin=spectre_noisy.min(), vmax=spectre_noisy.max())
ax[1].set_title('Restoration using\nRichardson-Lucy')
fig.subplots_adjust(wspace=0.02, hspace=0.2,
top=0.9, bottom=0.05, left=0, right=1)
plt.show() |
Partager