EP03_05 — 🔲 Applicazione della Maschera AND Binaria
3.12.5 EP03_05 🔲 Applicazione della Maschera AND Binaria
Nei sistemi di ispezione industriale tramite visione artificiale, è necessario isolare le regioni di interesse (ROI) nelle immagini dei pezzi per verificare difetti di fabbricazione. L’operazione AND bit a bit con una maschera binaria è il meccanismo fondamentale per ritagliare esattamente l’area di ispezione, azzerando tutti i pixel al di fuori di essa.
Dimensioni: Leggere gli interi \(L\) (righe) e \(C\) (colonne).
Dati: Leggere la matrice di pixel \(f\) (valori \(\in [0, 255]\)).
Maschera: Leggere la matrice binaria \(m\) (valori: solo 0 o 255).
Mappatura: Per ogni pixel \((i,j)\), applicare l’AND bit a bit:
\[
g(i,j) = f(i,j) \;\text{AND}\; m(i,j)
\]
dove \(255 =\)11111111 e \(0 =\)00000000 in binario.
Output: Visualizzare la matrice risultante \(L \times C\).
3.12.5.2 📌 Vincoli Computazionali
AND con 255:\(p \; \text{AND} \; 255 = p\) (tutti i bit preservati).
AND con 0:\(p \; \text{AND} \; 0 = 0\) (tutti i bit azzerati).
Maschera: Gli unici valori possibili nella maschera sono 0 e 255.
Implementazione: In Python, l’AND bit a bit tra interi utilizza l’operatore &.
3.12.5.3 🧠 Fondamento Teorico
Pixel \(f\)
Maschera \(m\)
Risultato \(f\) AND \(m\)
qualsiasi \(v\)
255 (11111111)
\(v\) (preservato)
qualsiasi \(v\)
0 (00000000)
0 (azzerato)
3.12.5.4 📦 Specifica di Input e Output (VPL)
Input:
Riga 1: Intero \(L\).
Riga 2: Intero \(C\).
Righe successive: Elementi di \(f\) (\(L\) righe).
Righe successive: Elementi di \(m\) (\(L\) righe con valori 0 o 255).
Output:
Matrice risultante \(L \times C\).
3.12.5.5 📌 Esempi
Input
Output
Osservazione
2
3
100 150 200
50 80 120
255 255 0
0 255 255
100 150 0
0 80 120
La maschera seleziona la regione
1
4
10 20 30 40
255 0 255 0
10 0 30 0
Alternato preservato/azzerato
⬛ Simulatore EP03_05: Maschera AND Binariag = f AND m
Fai clic sulle celle della Maschera m per alternare tra passante (255) e bloccante (0), applicando l'operazione logica pixel per pixel.
Immagine f (0–255)
Maschera m (Fai clic per Alternare)
Risultato g = f AND m
—
—preservati
—azzerati
—visibile
Legenda:
255
Passante (preservato)
0
Bloccante (azzerato)
g(i,j) = f(i,j) & m(i,j)
Figura 3.30: Simulatore EP03_05: Applicazione della Maschera AND Binaria
%%writefile EP03_05.py# Codice Python
Overwriting EP03_05.py
TestSuite("EP03_05.py").run()
✔️ EP03_05.cases esiste già in casos/
📋 5 caso/i caricato/i da casos/EP03_05.cases
🔍 Test di Python: EP03_05.py
⚠️ EP03_05.py: file vuoto (meno di 3 righe). Test saltati.