Lentilles minces : modéliser le flou

L’objectif de cet exercice est de reproduire par traitement d’image, à l’aide d’un programme Python, ce qu’on verrait sur un écran situé derrière une lentille convergente pour différentes positions de l’écran ; on fournit au programme un fichier image et des paramètres (le diamètre de la lentille $D$, sa distance focale $f’$, la distance lentille-objet $\overline{OA}$, la distance lentille-écran $\overline{OE}$, la taille de l’objet $\overline{AB}$), et il produit une image correspondant à ce qu’on verrait sur l’écran.

  1. Pourquoi la figure sur l’écran est-elle floue lorsque la distance entre la lentille et l’écran est différente de $\overline{OA’}$ ? Faire un schéma pour illustrer.
Correction
À un point objet ne correspond plus sur l'écran un point image mais une tâche de diamètre $d$.
  1. Déterminer $\overline{OA’}$ et $\overline{A'B’}$ en fonction de $\overline{OA}$, $f’$ et $\overline{AB}$.
Correction
$\displaystyle \overline{OA'} = \frac{\overline{OA}\cdot f'}{\overline{OA}+f'}$
$\displaystyle \overline{A'B'} = \overline{AB}\times\frac{\overline{OA'}}{\overline{OA}}$
  1. Déterminer la hauteur $H$ de la figure sur l’écran ainsi que le diamètre d’une tâche $d$ en fonction de $D$, $f’$, $\overline{OA’}$, $\overline{OE}$ et $\overline{A’B’}$.
Correction
  • $\displaystyle d = D\times\frac{|\overline{OE}-\overline{OA'}|}{\overline{OA'}}$
  • Le schéma nous montre que $H-A'B'$ est proportionnel à $|\overline{OE}-\overline{OA'}|$ $\Rightarrow$ $\displaystyle \frac{H-A'B'}{|\overline{OE}-\overline{OA'}|} = cste$.
    Et comme lorsque $\overline{OE}=0$, $H=D$, on a :
    $\displaystyle \frac{H-A'B'}{|\overline{OE}-\overline{OA'}|} = \frac{D-A'B'}{|0-\overline{OA'}|}$
    On en déduit que $\displaystyle H = A'B'+\frac{D-A'B'}{\overline{OA'}}\times |\overline{OE}-\overline{OA'}|$

Le programme Python est déjà écrit à l’exception de la fonction centrale qui contient la physique du problème :

def calcule_taille(D:float, fprime:float, OA:float, OE:float, AB:float) -> tuple:
    """
    Entrées:
        D: diamètre de la lentille (en m)
        fprime: 0 distance focale de la lentille (en m)
        OA: distance lentille-objet (en m)
        OE: distance lentille-écran (en m)
        AB: taille objet (en m)
    Sorties:
        tuple (H,d) avec:
        H: hauteur de la figure sur l'écran (en m)
        d: diamètre des tâches sur l'écran (en m)
    """
    # CODE À COMPLÉTER
  1. Se rendre sur ce notebook Colab et compléter la fonction.
Correction
Exemple de solution :
def calcule_taille(D, fprime, OA, OE, AB):
    OAprime = fprime * OA / (fprime + OA)
    d = (abs(OE - OAprime) / OAprime * D)
    AprimeBprime = AB * OAprime / OA
    H = abs(AprimeBprime) + (D - abs(AprimeBprime)) / OAprime * (abs(OE - OAprime))
    return H, d