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

Object rotieren - dargestellt durch Werte in einer Matrix

 

Komisch
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 28.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2017, 15:00     Titel: Object rotieren - dargestellt durch Werte in einer Matrix
  Antworten mit Zitat      
Hallo liebe Community,

ich möchte folgendes tun:

Code:

o o o o o o o o
o x x x o o o o
o x x x o o o o
o x x x o o o o
o o o o o o o o
 


Code:

o o o o o o o o
o o x x x o o o
o x x x o o o o
x x x o o o o o
o o o o o o o o
 


Also ein Quadrat repräsentiert durch x/1/... und freie Stellen in der Matrix repräsentiert durch 0/o/...
dieses Quadrat soll jetzt rotiert werden können, beliebig oft in dem ich einen Winkel eingebe und dann das Ergebnis als Ausgabe bekomme. Gibt es für sowas schon ein fertiges Tool in Matlab?

Als Ergebnis hätte ich gerne die neue Matrix. Ansonsten ist das Quadrat immer durch die Position der oberen linken Ecke gegeben und die Kantenlänge. Die Rotation wird als Winkel gespeichert.

MfG
Komisch
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.08.2017, 16:06     Titel:
  Antworten mit Zitat      
Hallo,

am ehesten fällt mir imrotate aus der Image Processing Toolbox ein.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Komisch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 28.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2017, 17:12     Titel:
  Antworten mit Zitat      
Klingt gut, allerdings ist immer noch ein Problem offen, wie bekomme ich das Quadrat danach wieder an die Ursprungsposition - denn wenn ich z.B. ein 2x2 Quadrat habe (Extremfall) und dieses um sich selbst rotiere und dann wieder an die Position bringen möchte muss ich ja die Pixelpositionen interpolieren... (Es ist notwendig die richtige Position zu finden)

Also mal kurz ob es zumindest bis dahin richtig wäre:

Mein Square packe ich davor in ein separates Array (und dort genau in die Mitte - falls dies die Rotationsachse ist), welches genug Platz für die Rotation bietet und nutze dann folgendes:

B = imrotate(image2rotate, angle, 'nearest', 'crop');

jetzt dürfte ich ein in der Größe unverändertes gedrehtes Quadrat bekommen und muss die Einsen nur in der richtigen Reihenfolge an die richtigen Positionen packen, was allerdings das große verbleibende Problem ist...

Ich habe später das Ziel die Bewegung nachzuvollziehen um den "perfekten optischen Fluss" zu bestimmen (da ich ja weiß welche Transformation ich verwendet habe).
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.08.2017, 20:44     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
allerdings ist immer noch ein Problem offen, wie bekomme ich das Quadrat danach wieder an die Ursprungsposition - denn wenn ich z.B. ein 2x2 Quadrat habe (Extremfall) und dieses um sich selbst rotiere und dann wieder an die Position bringen möchte muss ich ja die Pixelpositionen interpolieren... (Es ist notwendig die richtige Position zu finden)

Da verstehe ich nur Bahnhof.

Zitat:
Also mal kurz ob es zumindest bis dahin richtig wäre:

Mein Square packe ich davor in ein separates Array (und dort genau in die Mitte - falls dies die Rotationsachse ist), welches genug Platz für die Rotation bietet und nutze dann folgendes:

B = imrotate(image2rotate, angle, 'nearest', 'crop');

jetzt dürfte ich ein in der Größe unverändertes gedrehtes Quadrat bekommen

Einfach mal ausprobieren, dann siehst du ja, was du bekommst.

Zitat:
und muss die Einsen nur in der richtigen Reihenfolge an die richtigen Positionen packen, was allerdings das große verbleibende Problem ist...

Auch hier leider nur Bahnhof.

Zitat:
Ich habe später das Ziel die Bewegung nachzuvollziehen um den "perfekten optischen Fluss" zu bestimmen

... was auch immer das sein mag.

Das Thema klingt mir viel mehr nach Bildverarbeitung als nach Mathematik. Dann wäre es im Unterforum Bildverarbeitung auch besser aufgehoben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
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.