Hallo Brighty
deine Berechnung ist nicht korrekt.
Du hast übersehen, was ich weiter oben gepostet habe:
Gx^2 und Gy^2 können nicht beide gleichzeitig maximal sein.
Noch einmal:
Zitat:
In den folgenden beiden 3x3 Pixelbildern ist S=schwarz=0 und w=weiss=255.
gx wird (wie du korrekt schreibst) maximal, wenn es um Pixel P so aussieht:
S - W
S P W
S - W
gy wird maximal, wenn es um Pixel P so aussieht:
S S S
- P -
W W W
Wie du korrekt feststellst gilt max(gx) = 1020 und für max(gy)=1020. [bzw. min(gx)=-1020, min(gy)=-1020]
Wenn du die beiden 3x3 Pixelbilder oben betrachtest, dann siehst du, dass das Pixel unten links S sein muss für gx maximal und weiss sein muss für gy. Das kann nicht gleichzeitig der Fall sein.
Ebenso für das Pixel oben rechts: Für gx maximal müsste es weiss sein, für gy maximal aber schwarz. Auch das kann nicht gleichzeitig der Fall sein.
(Du nimmst aber in deiner Berechnung an, dass Pixel unten links gleichzeitig schwarz und weiss sein kann. Dito für das Pixel oben rechts: Es kann nicht schwarz und gleichzeitig auch weiss sein. )
=> Du musst also herausfinden für welche Wahl von a und b, der Gradient g^2(a,b) = gx^2(a,b) + gy^2(a,b) maximal wird. (siehe oben)
Zitat:
S S b
S P W
a W W
Wegen deinen Nachkommastellen. Wenn du letztendlich Resultate mit 3 Stellen ermittelst (du ermittelst ja Grauwerte von 0..255), reicht es, wenn deine Zahlen auf insgesamt 4-5 (Vor- und Nachkomma) Stellen genau sind.