I x-derivato Sobel appare in questo modo:Il filtro Sobel deve essere normalizzato?
-1 0 +1
-2 0 +2
-1 0 +1
Diciamo che ci sono due campioni della mia immagine, che assomigliano a quello (0 = nero, 1 = bianco):
0 0 1 1 0 0
0 0 1 & 1 0 0
0 0 1 1 0 0
Se io Esegui la convoluzione. Finirò con 4 e -4 rispettivamente.
Quindi la mia risposta naturale sarebbe normalizzare il risultato per 8 e tradurlo per 0,5 - è corretto? (mi chiedo come non riesce a trovare Wikipedia ecc menzionare alcuna normalizzazione)
EDIT: Io uso il filtro Sobel per creare un tensore struttura 2D (con i derivati dx e dy):
A B
Structure Tensor = C D
with A = dx^2
B = dx*dy
C = dx*dy
D = dy^2
In definitiva voglio memorizzare il risultato in [0,1], ma al momento mi chiedo se devo normalizzare il risultato Sobel (di default, non solo per memorizzarlo) o no, cioè:
A = dx*dx
//OR
A = (dx/8.0)*(dx/8.0)
//OR
A = (dx/8.0+0.5)*(dx/8.0+0.5)
dipende solo dalla tua applicazione. Se l'obiettivo è archiviarlo e visualizzare il risultato come bitmap, allora dovresti tradurre e ridimensionarlo in modo che rientri in 0..255. Qual è il tuo obiettivo ? – WhitAngl
"Quindi la mia risposta naturale sarebbe normalizzare il risultato per 8 e tradurlo per 0.5 - è corretto?" La tua risposta a cosa? –
@WhitAngl: la memorizzazione e la visualizzazione sono l'obiettivo finale (quindi eseguirò la normalizzazione/traduzione appropriata alla fine), ma nel frattempo devo fare un po 'più di calcolo. E mi chiedo se il filtro Sobel debba essere SEMPRE normalizzato (vedi domanda aggiornata). – Tom