TNI+VO · Exercice de Programmation

EP03_01 — ➕ Addition Saturée de Constante

3.12.1 EP03_01 ➕ Addition Saturée de Constante

Dans les systèmes de surveillance vidéo, les caméras situées dans des environnements à éclairage variable produisent des images sous-exposées. Le réglage de la luminosité par addition saturée d’une constante est l’opération la plus simple pour une correction immédiate, étant appliquée en temps réel sur les puces des caméras embarquées et dans les pipelines de pré-traitement des robots mobiles.

Voir dans Figure 3.26 une simulation de ce EP.

3.12.1.1 📋 Directives d’Implémentation

  1. Dimensions : Lire les entiers \(L\) (lignes) et \(C\) (colonnes).
  2. Constante : Lire l’entier \(k\) (valeur à ajouter).
  3. Données : Lire les valeurs entières de la matrice originale ligne par ligne.
  4. Mappage : Pour chaque pixel \(p\), calculer la nouvelle valeur selon l’équation :

\[p' = \text{clip}(p + k)\]

  1. Sortie : Afficher la matrice résultante avec les dimensions \(L \times C\).

3.12.1.2 📌 Contraintes Computationnelles

  • Saturation (Clipping) : Les valeurs doivent être confinées à l’intervalle \([0, 255]\) : \[\text{clip}(x) = \max(0, \min(255, x))\]
  • Type : Le résultat final doit être entier (sans décimales).
  • \(k\) peut être négatif : les valeurs négatives assombrissent l’image ; les valeurs positives l’éclaircissent.

3.12.1.3 🧠 Fondement Théorique

Paramètre Type Impact Visuel
\(k > 0\) Entier Éclaircit l’image ; les pixels proches de 255 saturent en blanc
\(k < 0\) Entier Assombrit l’image ; les pixels proches de 0 saturent en noir
\(k = 0\) Entier Image inchangée

3.12.1.4 📦 Spécification d’Entrée et de Sortie (VPL)

Entrée :

  • Ligne 1 : Entier \(L\).
  • Ligne 2 : Entier \(C\).
  • Ligne 3 : Entier \(k\).
  • Lignes suivantes : Éléments entiers de la matrice originale.

Sortie :

  • Matrice transformée en \(L\) lignes et \(C\) colonnes, valeurs entières séparées par des espaces.

3.12.1.5 📌 Exemples

Entrée Sortie Observation
2
3
50
0 100 200
210 240 255
50 150 250
255 255 255
Saturation à 255 sur les pixels élevés
1
4
-30
0 20 200 255
0 0 170 225 Saturation à 0 sur les pixels bas
➕ Simulateur EP03_01 : Addition saturée d'une constante p' = clip(p + k)

Ajustez la valeur de la constante k pour observer le décalage de luminosité de l'image et le troncature par saturation dans l'intervalle [0, 255].

0
Entrée originale (p)
Résultat transformé (p')
Formule appliquée : clip(p + (0))
Figure 3.26: Simulateur EP03_01 : Addition saturée de constante (p’ = clip(p + k))
%%writefile EP03_01.py
# Code Python
Overwriting EP03_01.py
TestSuite("EP03_01.py").run()
✔️ EP03_01.cases existe déjà dans casos/
📋 5 cas chargé(s) depuis casos/EP03_01.cases

🔍 Test de Python : EP03_01.py
⚠️ EP03_01.py : fichier vide (moins de 3 lignes). Tests ignorés.