TNI+VO · Exercice de Programmation

EP01_08 — 🎨 Remappage par Plage d’Intensité

1.19.8 EP01_08 🎨 Remappage par Plage d’Intensité

Dans cette activité, vous devez écrire un programme qui applique des transformations linéaires distinctes à différentes régions d’intensité de l’image.

  • Lisez deux entiers L et C, représentant les dimensions de la matrice.
  • Lisez les entiers T (seuil), δ₁ (delta 1) et δ₂ (delta 2).
  • Lisez les valeurs entières de la matrice.
  • Pour chaque pixel \(p\), appliquez la règle de remappage conditionnel :

\[\text{résultat} = \begin{cases} p + \delta_1 & \text{si } p < T \\ p + \delta_2 & \text{si } p \ge T \end{cases}\]

  • Affichez la matrice résultante avec les nouvelles valeurs d’intensité.

📌 Important :

  • δ₁ est le décalage appliqué aux pixels sombres (en dessous du seuil).
  • δ₂ est le décalage appliqué aux pixels clairs (supérieurs ou égaux au seuil).
  • Les cas de test garantissent que le résultat sera toujours dans l’intervalle valide de 0 à 255, il n’est donc pas nécessaire de gérer la saturation ou les arrondis.
  • La sortie doit conserver la structure de la matrice (L lignes et C colonnes).

1.19.8.1 🧠 Transformation Conditionnelle des Pixels

En Traitement Numérique des Images (TNI), nous devons souvent traiter les régions de manière indépendante. Cette technique permet, par exemple, d’éclaircir uniquement les ombres d’une photographie (en augmentant les pixels sombres) sans saturer la luminosité des zones déjà claires, ou vice versa.

Plage d’Intensité Condition Opération
Pixels Sombres \(p < T\) \(p + \delta_1\)
Pixels Clairs \(p \ge T\) \(p + \delta_2\)

1.19.8.2 📋 Tâche (spécification pour VPL)

Entrée :

La première ligne contient les entiers L et C.

La deuxième ligne contient les entiers T, δ₁ et δ₂.

Les lignes suivantes contiennent les éléments de la matrice.

Sortie :

La matrice transformée avec L lignes et C colonnes, avec des valeurs séparées par des espaces.

1.19.8.3 📌 Exemples

Entrée Sortie Observation
2 4
128 60 -40
0 100 150 255
80 128 200 30
60 160 110 215
140 88 160 90
Les pixels < 128 ajoutent 60. Les pixels ≥ 128 soustraient 40.
🎛️ Simulateur EP01_08 : Remappage par plage conditionnelle p < T → p + δ₁ | p ≥ T → p + δ₂

Ajustez le seuil de séparation (T) et les décalages de luminosité (δ₁ et δ₂) pour appliquer des transformations d'intensité différenciées dans les régions sombres et claires de l'image.

128
+60
-40
Entrée Originale (p)
Résultat Transformé
Règle active : p < 128 → p + (+60)  |  p ≥ 128 → p + (-40)
Figure 1.18: Simulateur EP01_08 : Remappage par Plage Conditionnelle (Luminosité et Contraste par Seuil)
%%writefile EP01_08.py
# votre solution
Overwriting EP01_08.py
TestSuite("EP01_08.py").run()
✔️ EP01_08.cases existe déjà dans casos/
📋 8 cas chargé(s) depuis casos/EP01_08.cases

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