Interférences et images

Quelques exemples de l’utilisation de la bibliothèque PIL pour l’exploitation d’images. A prendre comme une piste de réflexion.

Télécharger le pdf

Télécharger le notebook, et les images associées : diffraction et interferences

Lancer le notebook sur binder (lent)

[2]:
from PIL import Image
from math import cos
def monochromatique():
    img = Image.new("RGB",(400, 100))
    for j in range(100):
        for i in range(400):
            img.putpixel((i, j), (int(255*cos(i/20)**2), 0,0))
    return img

monochromatique()
[2]:
../../../_images/07-activites_00-terminale_images-interferences-diffraction_images-interferences-diffraction_2_0.png
[3]:
import matplotlib.pyplot as plt
import numpy as np

NBVALS = 200

def get_values(image, nb):
    h = image.height
    w = image.width
    out = list()
    for i in range(nb):
        pixel = image.getpixel((
            int(i*w/nb),
            int(h/2)
        ))
        out.append(pixel[0]+pixel[1]+pixel[2])
    return out
[4]:
# L’image utilisée ici n’est vraiment pas idéale (png d’illustration récupéré
# en ligne - saturation - image censée être monochromatique...)
# bref : à revoir avec une meilleure image - mas pas eu le temps de faire la manip sorry
img = Image.open("./images/diffraction.png")
img
[4]:
../../../_images/07-activites_00-terminale_images-interferences-diffraction_images-interferences-diffraction_4_0.png
[5]:


values = get_values(img, NBVALS)
plt.figure (figsize = (10,8))
plt.plot(range(NBVALS), values,label="sumrgb")
plt.xlabel("lum")
plt.ylabel("fakeintensite")
plt.legend()
plt.grid()
plt.title ("Diffraction")
plt.show()

../../../_images/07-activites_00-terminale_images-interferences-diffraction_images-interferences-diffraction_5_0.png
[6]:
# L’image ci-dessous n’est pas d’une grande qualité non plus, désolé...
img = Image.open("./images/interferences.png")
img
[6]:
../../../_images/07-activites_00-terminale_images-interferences-diffraction_images-interferences-diffraction_6_0.png
[7]:
values = get_values(img, NBVALS)
plt.figure (figsize = (10,8))
plt.plot(range(NBVALS), values,label="sumrgb")
plt.xlabel("lum")
plt.ylabel("fakeintensite")
plt.legend()
plt.grid()
plt.title ("Interférences")
plt.show()
../../../_images/07-activites_00-terminale_images-interferences-diffraction_images-interferences-diffraction_7_0.png
[40]:
# A RETRAVAILLER :)
[ ]: