C'è un modo semplice per invertire una maschera usando OpenCV? Per esempio, se ho una maschera simile a questo:OpenCV: inverti una maschera?
010
111
010
mi piacerebbe invertire e ottenere in questo modo:
101
000
101
Nota: sto usando Python di OpenCV, così mentre sarebbe possibile in modo da eseguire il loop su ciascun elemento della maschera, la velocità di esecuzione potrebbe diventare un problema.
utilizzare un [NOT bit a bit] (http: // opencv.willowgarage.com/documentation/python/operations_on_arrays.html#not) per capovolgere tutti i bit in una matrice. –
È possibile che io stia facendo qualcosa di stupido e sbagliato, ma non penso che sia un po 'troppo caro, non è quello che voglio ... Perché poi finirò con "255,254,255, ...". Forse è perché la mia maschera è un 'immagine'? –
Dipende dalla profondità di bit della maschera. Normalmente una maschera dovrebbe avere una profondità di 1 bit, che capovolgere il singolo bit da 0 a 1 e viceversa. Potrebbe essere necessario convertire prima la maschera in un'immagine a 1 bit. Se si ha una maggiore profondità di bit (ex 4), allora si passa da '0001' a' 1110' e da '0000' a' 1111' –