WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Bild in Draufsicht transformieren

 

Denis

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2021, 00:09     Titel: Bild in Draufsicht transformieren
  Antworten mit Zitat      
Ich habe ein Bild, dass ich mit meiner Kamera aus einem Winkel von 46° aufgenommen habe und möchte es so umrechnen, als ob ich exakt von oben drauf schauen würde.

Das soll doch mit folgenden Matrizen funktionieren:

R = Ryaw*Rpitch*Rroll. x = RX wobei x das Transformierte Bild und X das aufgenommene Bild ist.

Meine Winkel sind Pitch = 46°, Roll = 2,11° und Yaw = 0°.

Wenn ich aber damit die Matrizen aufstelle und auf das Bild anwende, wird mein Bild einfach zu einer dünnen horizontalen bzw. vertikalen Linie. Weiß jemand woran das liegt, bzw. hat jemand einen Tipp, wie man die projektive Verzerrung entfernt, wenn man die Winkel der Kamera kennt?


Vielen Dank schon mal im Voraus.


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 22.06.2021, 22:07     Titel:
  Antworten mit Zitat      
Ich stelle mal die ganz naive Frage: woher sollen denn die Informationen kommen, um die Pixel aus einem anderen Winkel zu betrachten?

So wie du es beschrieben hast, hast du ein Objekt (flaches Rechteck) erfolgreich im Raum gedreht.

Wenn du Bestandteile IM Bild drehen willst, muss du diese erst detektieren und dann entsprechend berechnen - wenn du das übliche Schachbrettmuster hast eben die Verzerrung bestimmen ... o.ä.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Denis

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2021, 07:50     Titel:
  Antworten mit Zitat      
Hallo Martina,

Danke für deine Antwort. Nein ich konnte das Bild eben noch gar nicht drehen. Ich habe eine Kamera mit Beschleunigungssensoren, daher weiß ich in welchem Winkel die Kamera zu der aufgenommenen Szene stand. Nun möchte ich das Bild, das ich aus einem bekannten Winkel aufgenommen habe in ein Bild umrechnen, als ob ich exakt von oben auf die Szene drauf schauen würde. Und das ist im Moment mein Problem. Wenn ich die entsprechenden Umrechnungsmatrizen aufstelle und auf das Bild anwende, bekomme ich nur einen lagen dünnen Strich.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.458
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.06.2021, 09:00     Titel:
  Antworten mit Zitat      
Hallo,

ich bin nun kein Experte in Bildverarbeitung, aber:
poste doch, wie du die Umrechnungsmatrizen aufstellst. Wenn die Rechnung
R = Ryaw*Rpitch*Rroll. x = RX
an sich richtig ist, sind ja vielleicht die Matrizen falsch aufgestellt?

Ohne ein Ausgangsbild und die Matrizen ist das ganze jedenfalls sehr schwer nachvollziehbar.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Denis

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2021, 09:31     Titel: Bild in Draufsicht transformieren
  Antworten mit Zitat      
Hallo,

ich habe die Matrizen wie folgt aufgestellt:

Rpitch = [cosd(beta) 0 sind(beta); % beta
0 1 0;
-sind(beta) 0 cosd(beta)];

Rroll = [1 0 0;
0 cosd(gamma) -sind(gamma);
0 sind(gamma) cosd(gamma)];

Ryaw = [cosd(alpha) -sind(alpha) 0; %alpha
sind(alpha) cosd(alpha) 0;
0 0 1];

R = Ryaw*Rpitch*Rroll

Das Bild das ich aufgenommen habe befindet sich im Anhang.

untitled.jpg
 Beschreibung:
Das Bild wurde mit einer Neigung von 46° nach vorne und 2° zur Seite aufgenommen.

Download
 Dateiname:  untitled.jpg
 Dateigröße:  237.82 KB
 Heruntergeladen:  226 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.458
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.06.2021, 09:49     Titel:
  Antworten mit Zitat      
Hallo,

und was nimmst du als x bzw. X? Du brauchst ja dann eine nx3-Matrix mit (x,y,z)-Koordinaten?

Je besser man deine Schritte nachvollziehen kann, desto eher kann man dir helfen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Denis

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2021, 11:43     Titel: Bild in Draufsicht transformieren
  Antworten mit Zitat      
Hallo Harald,

hier ist mein Code (im Anhang). Ich habe ihn inzwischen abgeändert. Dies ist der aktuelle Stand.

Bildtransformation.pdf
 Beschreibung:
Der Code, mit dem ich versuche die Umrechnung durchzuführen

Download
 Dateiname:  Bildtransformation.pdf
 Dateigröße:  76.59 KB
 Heruntergeladen:  251 mal
untitled.jpg
 Beschreibung:
das aufgenommene Bild

Download
 Dateiname:  untitled.jpg
 Dateigröße:  237.82 KB
 Heruntergeladen:  235 mal
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.