TNI+VO · Exercice de Programmation

EP03_07 — 🔍 Opérateur Laplacien (w4) pour le Rehaussement des Contours

3.12.7 EP03_07 🔍 Opérateur Laplacien (w4) pour le Rehaussement des Contours

Dans les tomographies à haute résolution, la netteté des contours entre les tissus est critique pour le diagnostic. L’opérateur Laplacien est largement utilisé dans les pipelines de prétraitement d’images médicales pour rehausser automatiquement les contours anatomiques avant la segmentation, évitant ainsi une intervention manuelle du radiologiste.

Voir dans Figure 3.32 une simulation de cet EP.

3.12.7.1 📋 Directives d’Implémentation

  1. Dimensions : Lire les entiers \(L\) (lignes) et \(C\) (colonnes).
  2. Données : Lire la matrice de pixels \(f\).
  3. Laplacien (w4) : Pour chaque pixel interne \((i,j)\) avec \(1 \le i < L-1\), \(1 \le j < C-1\), calculer :

\[\nabla^2 f(i,j) = f(i-1,j) + f(i+1,j) + f(i,j-1) + f(i,j+1) - 4 \cdot f(i,j)\]

  1. Rehaussement : Calculer l’image rehaussée :

\[g(i,j) = \text{clip}(f(i,j) - \nabla^2 f(i,j))\]

  1. Bordure : Les pixels en bordure sont copiés directement : \(g(i,j) = f(i,j)\).
  2. Sortie : Afficher la matrice rehaussée \(L \times C\).

3.12.7.2 📌 Contraintes Computationnelles

  • Noyau w4 : \(\begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{bmatrix}\) — uniquement 4-voisins.
  • Saturation : \(\text{clip}(x) = \max(0, \min(255, x))\) appliqué au résultat du rehaussement.
  • Sans arrondi : Le Laplacien n’utilise que des additions/soustractions d’entiers.

3.12.7.3 🧠 Fondement Théorique

Région \(\nabla^2 f\) Effet du Rehaussement
Uniforme \(\approx 0\) Aucune modification
Contour croissant \(< 0\) Pixel éclairci
Contour décroissant \(> 0\) Pixel assombri

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

Entrée :

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

Sortie :

  • Matrice rehaussée \(L \times C\).

3.12.7.5 📌 Exemples

Entrée Sortie Observation
3
3
0 0 0
0 100 0
0 0 0
0 0 0
0 255 0
0 0 0
Pic isolé : lap=−400, g=100−(−400)=500 → clip=255
3
3
50 50 50
50 50 50
50 50 50
50 50 50
50 50 50
50 50 50
Région uniforme : Laplacien=0, aucune modification
📐 Simulateur EP03_07 : Opérateur Laplacien (w4) g = f ∓ ∇²f

Sélectionnez la variante de rehaussement et survolez les pixels internes du résultat pour inspecter le voisinage de 4 points et l'équation du Laplacien.

Variante :
① Image originale f Palier avec léger bruit
② Laplacien ∇²f Bords détectés (décalage ±128)
③ Résultat g = f − ∇²f Survolez pour inspecter
Noyau w4 (4-voisins)
0
+1
0
+1
−4
+1
0
+1
0
∇²f = T + B + L + R − 4·f
Légende :
4-voisins du noyau
Pixel central
Bord (copié)
Survolez un pixel interne du résultat pour détailler l'équation.
Figure 3.32: Simulateur EP03_07 : Opérateur Laplacien (w4) pour le rehaussement des contours
%%writefile EP03_07.cpp
// your solution
Overwriting EP03_07.cpp
TestSuite("EP03_07.cpp").run()
✔️ EP03_07.cases existe déjà dans casos/
📋 5 cas chargé(s) depuis casos/EP03_07.cases

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