X-pochodna Sobel wygląda w ten sposób:Czy filtr Sobela miał być znormalizowany?
-1 0 +1
-2 0 +2
-1 0 +1
Powiedzmy, istnieją dwie próbki mojego obrazu, które wyglądają tak (0 = czarny, 1 = biały):
0 0 1 1 0 0
0 0 1 & 1 0 0
0 0 1 1 0 0
Jeśli I wykonam splot, na którym skończę odpowiednio 4 i -4.
Tak więc moją naturalną reakcją byłoby znormalizowanie wyniku o 8 i przetłumaczenie go o 0.5 - czy to prawda? (zastanawiam się jak nie można znaleźć w Wikipedii itp wspomnieć normalizacji)
EDIT: używam filtr Sobel stworzyć tensora Struktura 2D (z pochodnymi dX i dy):
A B
Structure Tensor = C D
with A = dx^2
B = dx*dy
C = dx*dy
D = dy^2
Ostatecznie chcę zapisać wynik w [0,1], ale teraz zastanawiam się, czy muszę normalizować wynik Sobela (domyślnie, nie tylko po to, aby go zapisać), czy też nie, np .:
A = dx*dx
//OR
A = (dx/8.0)*(dx/8.0)
//OR
A = (dx/8.0+0.5)*(dx/8.0+0.5)
to tylko zależy od aplikacji. Jeśli celem jest zapisanie go i wizualizacja wyniku jako bitmapy, należy przetłumaczyć i skalować tak, aby mieścił się w zakresie 0..255. Jaki jest twój cel? – WhitAngl
"Więc moją naturalną reakcją byłoby znormalizowanie wyniku o 8 i przetłumaczenie go o 0,5 - czy to prawda?" Twoja odpowiedź na pytanie? –
@WhitAngl: przechowywanie i wizualizacja jest ostatecznym celem (więc zrobię odpowiednią normalizację/tłumaczenie na końcu), ale muszę zrobić trochę więcej kalkulacji pomiędzy. I zastanawiam się, czy filtr ZAWSZE Sobel musi zostać znormalizowany (patrz zaktualizowane pytanie). – Tom