TNI+VO · Exercice de Programmation

EP03_02 — 🔀 Fusion Alpha de Deux Images

3.12.2 EP03_02 🔀 Fusion Alpha de Deux Images

En médecine nucléaire, des images de différentes modalités (tomodensitométrie et imagerie par résonance magnétique) sont fusionnées pour faciliter le diagnostic. Le mélange pondéré (alpha blending) est l’opération fondamentale de ce processus, permettant au radiologue de contrôler interactivement le poids de chaque modalité dans l’image affichée.

Voir dans Figure 3.27 une simulation de ce EP.

3.12.2.1 📋 Directives d’Implémentation

  1. Dimensions : Lire les entiers \(L\) (lignes) et \(C\) (colonnes).
  2. Paramètre : Lire la valeur réelle \(\alpha \in [0, 1]\).
  3. Données : Lire les valeurs entières de la matrice \(f_1\) (image 1), puis celles de la matrice \(f_2\) (image 2).
  4. Mappage : Pour chaque position \((i, j)\), calculer :

\[g(i,j) = \text{clip}\left(\text{round}\left(\alpha \cdot f_1(i,j) + (1-\alpha) \cdot f_2(i,j)\right)\right)\]

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

3.12.2.2 📌 Contraintes de Calcul

  • Arrondi : Appliquer round avant la conversion en entier.
  • Saturation : Confiner à l’intervalle \([0, 255]\) avec \(\text{clip}(x) = \max(0, \min(255, x))\).
  • Opération en virgule flottante : Effectuer l’opération en virgule flottante avant d’arrondir.

3.12.2.3 🧠 Fondement Théorique

Valeur de \(\alpha\) Résultat
\(\alpha = 1.0\) Uniquement \(f_1\)
\(\alpha = 0.5\) Moyenne arithmétique de \(f_1\) et \(f_2\)
\(\alpha = 0.0\) Uniquement \(f_2\)

3.12.2.4 📦 Spécification des Entrées et Sorties (VPL)

Entrée :

  • Ligne 1 : Entier \(L\).
  • Ligne 2 : Entier \(C\).
  • Ligne 3 : Réel \(\alpha\).
  • Lignes suivantes : Éléments de \(f_1\) (\(L\) lignes avec \(C\) valeurs chacune).
  • Lignes suivantes : Éléments de \(f_2\) (\(L\) lignes avec \(C\) valeurs chacune).

Sortie :

  • Matrice résultante \(L \times C\).

3.12.2.5 📌 Exemples

Entrée Sortie Observation
1
3
0.5
0 100 200
100 200 50
50 150 125 Moyenne entre les deux images
1
3
1.0
10 20 30
90 80 70
10 20 30 Uniquement \(f_1\) (alpha=1)
🔀 Simulateur EP03_02 : Alpha Blending de Deux Images g = α·f1 + (1−α)·f2

Ajustez le paramètre de transparence α pour observer la combinaison linéaire pondérée pixel par pixel entre les images f1 et f2.

0.50
α = 0.00 → Seulement f2  |  α = 0.50 → Moyenne Pondérée Égale  |  α = 1.00 → Seulement f1
Image f1
Image f2
Résultat g
Formule : clip(round(0,50 · f1 + 0,50 · f2))
Figure 3.27: Simulateur EP03_02 : Mélange Alpha de Deux Images (g = α·f1 + (1−α)·f2)
%%writefile EP03_02.py
# Code Python
Overwriting EP03_02.py
TestSuite("EP03_02.py").run()
✔️ EP03_02.cases existe déjà dans casos/
📋 6 cas chargé(s) depuis casos/EP03_02.cases

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