TNI+VO · Exercice de Programmation

EP03_03 — 🎭 Inversion d’image (négatif photographique)

3.12.3 EP03_03 🎭 Inversion d’image (négatif photographique)

En radiologie, les images de rayons X sont traditionnellement visualisées en négatif : les os apparaissent en noir sur fond blanc. L’opération de négatif photographique est appliquée de manière courante dans les PACS (Picture Archiving and Communication Systems) pour faciliter la détection des fractures et des densités osseuses.

Voir dans Figure 3.28 une simulation de cet EP.

3.12.3.1 📋 Directives d’implémentation

  1. Dimensions : Lire les entiers \(L\) (lignes) et \(C\) (colonnes).
  2. Données : Lire les valeurs entières de la matrice originale.
  3. Mappage : Pour chaque pixel \(p\), calculer le négatif :

\[p' = 255 - p\]

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

3.12.3.2 📌 Contraintes informatiques

  • Aucun clipping nécessaire : Le résultat de \(255 - p\) avec \(p \in [0, 255]\) est toujours \(\in [0, 255]\).
  • Type entier : La sortie doit être des valeurs entières.
  • Équivalence logique : L’opération est identique au NOT bit à bit (mm::bnot) sur les images en 8 bits.

3.12.3.3 🧠 Fondements théoriques

Pixel original \(p\) Pixel négatif \(p'\) Observation
0 (noir) 255 (blanc) Inversion totale
128 (gris moyen) 127 (gris moyen) Valeur centrale
255 (blanc) 0 (noir) Inversion totale

3.12.3.4 📦 Spécification d’entrée et de sortie (VPL)

Entrée :

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

Sortie :

  • Matrice négative en \(L\) lignes et \(C\) colonnes.

3.12.3.5 📌 Exemples

Entrée Sortie Observation
1
4
0 128 200 255
255 127 55 0 Inversion de chaque pixel
2
2
10 20
30 40
245 235
225 215
Matrice 2x2 inversée
🎭 Simulateur EP03_03 : Négatif photographique (inversion) p' = 255 − p

Observez l'inversion complémentaire d'intensité : les tons sombres deviennent clairs et les tons clairs deviennent sombres en soustrayant chaque pixel de la valeur maximale de 255.

Entrée originale (p)
Négatif (p' = 255 − p)
 
Formule appliquée : p' = 255 − p
Figure 3.28: Simulador EP03_03 : Inversion d’image — Négatif photographique (p’ = 255 − p)
%%writefile EP03_03.cpp
// your solution
Overwriting EP03_03.cpp
TestSuite("EP03_03.cpp").run()
✔️ EP03_03.cases existe déjà dans casos/
📋 5 cas chargé(s) depuis casos/EP03_03.cases

🔍 Test de C++ : EP03_03.cpp
⚠️ EP03_03.cpp : fichier vide (moins de 3 lignes). Tests ignorés.