Hallo, meine Aufgabe ist es mittels Matlb ein Bild in einen bestimmten Winkel rotieren zu lassen. Dass habe ich mal geschafft. Doch zusätzlich muss ich das Bild wieder zurückdrehen, die schwierigkeit dabei ist jedoch dass ich auf die Information nicht zurückgreifen darf, sondern herausfinden muss in welchen Winkel sich das Bild befindet. Das geht an geblich mit der Radon Funktion. Deshalb hab ich mich da ein bisschen herumgespielt. Hat zu diesen Thema vielleicht wer eine Ahnung. Hier ist mal der Matlab Source Code. %Image Rotation am 27.02.2007 clf clc %I = imread('cameraman.tif'); M= imread ('C:\Programme\Matlab6.5\toolbox\images\imdemos\kreuz3.jpg'); %J = imrotate(I,-45,'bilinear','crop'); N = imrotate(M,-45,'bilinear','crop'); %subplot (2,2,1) %imshow (I) %subplot (2,2,2) %imshow (J) subplot (2,2,1) imshow (M) subplot (2,2,2) imshow (N) %figure (2) %imhist(N) theta=0:180; [R,xp]=radon(N,theta); subplot (2,2,3) b=imagesc(theta,xp,R); title('R_{\theta}(X\prime)'); xlabel('\theta(degrees)'); ylabel('X\prime'); set(gca,'XTick',0:20:180); colormap(hot); colormap(gray); %colorbar %subplot (2,2,4) %imagesc(theta,xp,R) %colormap('gray') figure(2) clf %subplot (2,2,4) r=reshape(R,1,181*193) figure (2) h=imhist(r,180) plot (h) figure(3) mesh(R) max(max(R)) e= find(R>15500) length(e) f=r(e) figure(4) plot (f) %modulo Im Prinzip habe ich hier dann mal mein Maxima rausgefiltert und brauche nur noch die Winkelinformation aus diesen Wert herauslesen.
Naja die Frage ist die, wie ich jetzt weiter komme. Ich brauche als Ergebnis den Winkel. Doch ich weiß nicht wie ich auf diesen komme.
Such die Position des Maximums im Ergebnisvektor, schau was an der selben Position in theta steht, schon hast du den Winkel.
Ja das Maximum habe ich ja schon, nur wie bekomme ich den Winkel Theta. Mit welcher Funktion?
Such die POSITION des Maximums im Ergebnisvektor, und schau was an der selben Stelle in theta steht. Hab ich doch oben schon geschrieben... theta(find(R == max(R)))
Die nötigen Hinweise hast du bekommen, jetzt bitte mal etwas Eigeninitiative. Ich werde nicht deine Hausaufgaben machen.
Matlab hat einige ganz brauchbare Debug-Funktionen, Stichwort: "keyboard"-Befehl und Breakpoints. Es wird Zeit, dass du dich damit beschäftigst.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.