Gradient mit Sobel-Operator un < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 11:54 Do 14.12.2006 | Autor: | nabla |
Hallo, ich möchte mit Hilfe des Sobeloperators eine Kantendetektion durchführen. Außerdem möchte ich nachher für eine Klassifizierung mit den Richtungen der Gradienten weiterarbeiten. Hier mal der Matlab-Code:
for i = 2: (imagesize(1)-1) %rows
for j = 2:(imagesize(2)-1) %columns
% calculate sx and sy
SX = threshold*( Image(i-1,j+1) + 2* Image(i,j+1) + Image(i+1,j+1) - Image(i-1,j-1) - 2*Image(i,j-1) - Image(i+1,j-1) );
SY = threshold*( Image(i+1,j+1) + 2* Image(i+1,j) + Image(i+1,j-1) - Image(i-1,j+1) - 2*Image(i-1,j) - Image(i-1,j-1) );
% SX = (-1)*threshold*( Image(i-1,j+1) + 2* Image(i,j+1) + Image(i+1,j+1) - Image(i-1,j-1) - 2*Image(i,j-1) - Image(i+1,j-1) );
% SY = (-1)*threshold*( Image(i+1,j+1) + 2* Image(i+1,j) + Image(i+1,j-1) - Image(i-1,j+1) - 2*Image(i-1,j) - Image(i-1,j-1) );
[mm] edge_x(i,j)=SX;
[/mm]
[mm] edge_y(i,j)=SY;
[/mm]
%calculate Magnitude
GMAG = sqrt( double(SY*SY) + double(SX*SX));
%calculate direction array GDIR
GDIR(i,j) = 360/(2*pi)*(atan2 ( double(SY) , double(SX) )) ;
EDGE(i,j)=GMAG;
end;
end;
Leider erhalte ich nun in x-Richtung die jeweilige Richtungsangabe von Dunkel nach Hell und in Y-Richtung die Angabe für Hell nach Dunkel. Hat einer eine Idee woran das liegen könnte?
Danke
Nabla
Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
http://www.informatik-forum.at/showthread.php?p=382490#post382490
http://matheplanet.com/default3.html?call=viewforum.php?forum=41003&ref=http%3A%2F%2Fwww.google.de%2Fsearch%3Fhl%3Dde%26sa%3DX%26oi%3Dspell%26resnum%3D0%26ct%3Dresult%26cd%3D1%26q%3Dmatlab-forum%26spell%3D1
|
|
|
|
Hallo,
ohne Hinzusehen würde ich mal sagen, dass das an der Indizierung der Bildmatrix liegt. Hier gehen die Indizes in x-Richtung von links nach rechts und in y-Richtung von oben nach unten.
In einem Koordinatensystem haben wir für die x-Achse dieselbe Richtung, für die y-Achse aber die umgekehrte.
Wenn wir nun einen Winkel berechnen, dann wird er wohl an der x-Achse gespiegelt. Kann das sein?
Gruß
Martin
|
|
|
|