In radiologia, le immagini ai raggi X sono tradizionalmente visualizzate in negativo: le ossa appaiono in nero su sfondo bianco. L’operazione di negativo fotografico viene applicata di routine nei PACS (Picture Archiving and Communication Systems) per facilitare la rilevazione di fratture e densità ossee.
Vedere nella Figura 3.28 una simulazione di questo EP.
3.12.3.1 📋 Linee Guida di Implementazione
Dimensioni: Leggere gli interi \(L\) (righe) e \(C\) (colonne).
Dati: Leggere i valori interi della matrice originale.
Mappatura: Per ogni pixel \(p\), calcolare il negativo:
\[p' = 255 - p\]
Output: Visualizzare la matrice risultante \(L \times C\).
3.12.3.2 📌 Vincoli Computazionali
Nessun clipping necessario: Il risultato di \(255 - p\) con \(p \in [0, 255]\) è sempre \(\in [0, 255]\).
Tipo intero: L’output deve essere composto da valori interi.
Equivalenza logica: L’operazione è identica al NOT bit a bit (mm::bnot) su immagini a 8 bit.
3.12.3.3 🧠 Fondamenti Teorici
Pixel Originale \(p\)
Pixel Negativo \(p'\)
Osservazione
0 (nero)
255 (bianco)
Inversione totale
128 (grigio medio)
127 (grigio medio)
Valore centrale
255 (bianco)
0 (nero)
Inversione totale
3.12.3.4 📦 Specifica di Input e Output (VPL)
Input:
Riga 1: Intero \(L\).
Riga 2: Intero \(C\).
Righe successive: Elementi interi della matrice originale.
Output:
Matrice negativa in \(L\) righe e \(C\) colonne.
3.12.3.5 📌 Esempi
Input
Output
Osservazione
1
4
0 128 200 255
255 127 55 0
Inversione di ogni pixel
2
2
10 20
30 40
245 235
225 215
Matrice 2x2 invertita
🎭 Simulatore EP03_03: Negativo Fotografico (Inversione)p' = 255 − p
Osserva l'inversione complementare di intensità: i toni scuri diventano chiari e i toni chiari diventano scuri sottraendo ogni pixel dal valore massimo di 255.
✔️ EP03_03.cases esiste già in casos/
📋 5 caso/i caricato/i da casos/EP03_03.cases
🔍 Test di C++: EP03_03.cpp
⚠️ EP03_03.cpp: file vuoto (meno di 3 righe). Test saltati.