www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Image Rotation


Autor: Mario Löffler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was genau ist die Frage?

Autor: Mario Löffler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Mario Löffler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiß da jemand weiter?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such die Position des Maximums im Ergebnisvektor, schau was an der 
selben Position in theta steht, schon hast du den Winkel.

Autor: Mario Löffler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das Maximum habe ich ja schon, nur wie bekomme ich den Winkel Theta. 
Mit welcher Funktion?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)))

Autor: Mario Löffler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versteh nicht ganz wie das gehen soll.
Der Maximalwert ist   1.5571 !

Autor: Mario Löffler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie funktioniert auch nicht der code den du mir geschickt hast.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die nötigen Hinweise hast du bekommen, jetzt bitte mal etwas 
Eigeninitiative. Ich werde nicht deine Hausaufgaben machen.

Autor: Mario Löffler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schaffe es nicht ich bekomme entweder Null oder ein Empty matrix: 
1-by-0

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matlab hat einige ganz brauchbare Debug-Funktionen, Stichwort: 
"keyboard"-Befehl und Breakpoints.

Es wird Zeit, dass du dich damit beschäftigst.

Autor: Mario Löffler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem habe ich schon gelöst.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.