|
|
Object rotieren - dargestellt durch Werte in einer Matrix |
|
Komisch |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 28.06.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.08.2017, 15:00
Titel: Object rotieren - dargestellt durch Werte in einer Matrix
|
|
Hallo liebe Community,
ich möchte folgendes tun:
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
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.08.2017, 16:06
Titel:
|
|
Hallo,
am ehesten fällt mir
imrotate
aus der Image Processing Toolbox ein.
Grüße,
Harald
|
|
|
Komisch |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 28.06.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.08.2017, 17:12
Titel:
|
|
|
|
|
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).
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.08.2017, 20:44
Titel:
|
|
|
|
|
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|