Ajustez l'intensité des canaux Rouge (R), Vert (V) et Bleu (B) pour observer comment chaque composante contribue pondéralement à la valeur finale de luminance en niveaux de gris.
1.19.6 EP01_06 🎨 Conversion RGB → Niveaux de gris (ITU-R BT.601)
Dans cette activité, vous devez écrire un programme qui convertit des pixels colorés (RVB) en niveaux de gris en utilisant la pondération physiologique de la norme ITU-R BT.601.
- Lisez deux entiers L et C, représentant le nombre de lignes et de colonnes.
- Lisez L × C triplets d’entiers, où chaque triplet représente les canaux R (Rouge), G (Vert) et B (Bleu) d’un pixel.
- Pour chaque pixel, calculez la valeur de gris (\(g\)) à l’aide de la formule :
\[g = \text{round}(0.299 \times R + 0.587 \times G + 0.114 \times B)\]
- Affichez la matrice résultante (L lignes et C colonnes) contenant les valeurs entières converties.
📌 Important :
- Utilisez la fonction
round()de votre langage pour garantir l’arrondi correct à l’entier le plus proche. - La sortie doit contenir uniquement les valeurs de gris, en préservant la structure de la matrice (séparées par des espaces sur la ligne).
- Consultez un simulateur interactif pour cette question sur la Figure 1.16 (ajustez les curseurs pour voir comment chaque couleur contribue à la luminosité finale).
1.19.6.1 🧠 Pourquoi ne pas utiliser simplement la moyenne ?
L’œil humain ne perçoit pas toutes les couleurs avec la même intensité. Nous sommes beaucoup plus sensibles au Vert qu’au Bleu en raison de notre évolution biologique. La norme ITU-R BT.601 utilise des poids spécifiques pour créer une image en niveaux de gris qui semble naturellement correcte pour notre vision :
| Canal | Poids | Perception humaine |
|---|---|---|
| 🟢 Vert | 58,7 % | Sensibilité maximale (distinction du feuillage). |
| 🔴 Rouge | 29,9 % | Sensibilité moyenne. |
| 🔵 Bleu | 11,4 % | Faible sensibilité (tons plus sombres). |
1.19.6.2 📋 Tâche (spécification pour VPL)
Entrée :
La première ligne contient l’entier L.
La deuxième ligne contient l’entier C.
Les lignes suivantes contiennent des triplets d’entiers R G B pour chaque pixel.
Sortie :
La matrice des niveaux de gris avec L lignes et C colonnes.
1.19.6.3 📌 Exemples
| Entrée | Sortie | Observation |
|---|---|---|
| 1 3 255 0 0 0 255 0 0 0 255 |
76 150 29 | Remarquez comment le Vert (150) est plus lumineux que le Bleu (29) |
%%writefile EP01_06.py
# votre solutionOverwriting EP01_06.py
TestSuite("EP01_06.py").run()✔️ EP01_06.cases existe déjà dans casos/
📋 7 cas chargé(s) depuis casos/EP01_06.cases
🔍 Test de Python : EP01_06.py
⚠️ EP01_06.py : fichier vide (moins de 3 lignes). Tests ignorés.