|
|
Bild und Gerade gemeinsam verdrehen |
|
batimania83 |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 08.01.12
|
 |
|
 |
Wohnort: Bochum
|
 |
|
 |
Version: R2010
|
 |
|
|
 |
|
Verfasst am: 08.01.2012, 15:10
Titel: Bild und Gerade gemeinsam verdrehen
|
 |
|
 |
|
Hallo Leute,
als ziemlicher Neuling in der Welt von Matlab muss ich mich zunächst ein mal pauschal bei euch bedanken, denn ohne dieses Forum wär mir der Einstieg um einiges schwerer gefallen...nun stehe ich aber doch vor einem Problem, zu dem ich leider bisher keine hilfreichen Tipps gefunden habe.
Sachverhalt:
Zu Beginn habe ich ein Image aus 224x560 Pixeln. Als User soll man dann in einem ersten Schritt per Maus eine Region of Interest markieren, in die dann reingezoomt wird. In einem zweiten Schritt legt man dann eine Gerade durch zwei Punkte, die ebenfalls per Mausklick ausgewählt werden. Daraufhin soll der Winkel der Geraden zur Vertikalen ermittelt und das Bild inkl. der Geraden entsprechend verdreht werden, sodass die Gerade senkrecht steht, also einer Spalte der Matrix entspricht. In dieser Spalte soll dann in einem letzten Schritt die Zeilenzahl eines gewissen Pixelwerts ausgegeben werden.
Stand der Dinge:
Bisher habe ich die Routine soweit geschrieben, dass man zu Beginn per Mauszeiger mittels "getrect" ein Rechteck um die RoI zieht und sich dieser Abschnitt dann vergrößert in einer neuen Abbildung öffnet. Dann klickt man mittels "pinput" zwei Punkte an, durch die dann über die Geradengleichung eine Linie in den Grenzen der RoI gelegt wird und auch angezeigt wird.
An dieser Stelle beginnt nun mein Problem. Und zwar wird in dem folgenden Schritt zwar das Bild automatisch um "alpha"gedreht und in einer neuen Abbildung angezeigt, allerdings ohne die vorher ausgewählte Gerade bzw. hat diese noch ihre alte Position in einem nun völlig anderen Bildausschnitt. Ich hätte es allerdings gerne, dass die Gerade ortsfest zu den beiden ausgewählten Bildpunkten mit gedreht wird.
Hat da vielleicht jemand eine Idee oder sogar schon einen passenden Befehl, mit der ich das bewerkstelligen könnte? Ich wär für jede Anregung dankbar, auch wenn es da vielleicht einen einfacheren Ansatz geben sollte.
Ich hoffe ich konnte das Problem ausreichend schildern, ansonsten liefere ich bei Bedarf natürlich gerne Infos nach. Danke schon mal im Voraus.
Viele Grüße,
Sebastian
|
|
|
|
|
Hubertus |

Forum-Meister
|
 |
Beiträge: 1.034
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.01.2012, 17:36
Titel:
|
 |
Moin,
es gibt verschiedene Möglichkeiten eine Linie zu erzeugen, entweder mit "line" oder man setzt die Pixel auf der gedachten Linie auf einen indizierten Wert, der auch farbig sein kann. Wenn du die Linie mit Line erzeugt hast, wird wohl dein beschriebenes Problem entstehen ( kann das im Moment nicht prüfen, da ich am Wochenende keinen Zugriff auf Matlab habe). Dann besteht immer noch die Möglickeit, dass du den Inhalt deiner Figur als Bild speicherst und dann wieder einlädst. Speichern des Inhalts einer Figur siehe:
http://www.gomatlab.de/gespeicherte.....ung-speichern-t21732.html
Vielleicht hilft das weiter, sonst versuche ich ab Montag das Problem nachzuvollziehen.
Viele Grüße
Hubertus
|
|
|
batimania83 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 08.01.12
|
 |
|
 |
Wohnort: Bochum
|
 |
|
 |
Version: R2010
|
 |
|
|
 |
|
Verfasst am: 09.01.2012, 21:49
Titel:
|
 |
Hallo Hubertus,
danke für die schnelle Antwort, leider konnte ich mich nicht eher damit beschäftigen. Also die Funktion "line" benutze ich gar nicht. Die Linie erzeuge ich mit folgendem Code (ROI sind hier die Eckpunkte von "getrect"):
Danach drehe ich dann das Bild A um Alpha und würde darin gerne die Gerade an fester Position belassen. Oder mach ich da was falsch?
Zu deinen Vorschlägen:
1. was meinst du genau mit indizierten Werten?
2. ich habe mir den Link mal angeschaut. Heißt das, dass man die gesamte Abbildung vor dem Rotieren als *.tif speichert und dann ich rotierter Form wieder einlädt? oder wie hab ich das zu verstehen?
Hätte ja gedacht, das wird eine ganz einfache Aktion
Noch eine Alternative hast du aber wahrscheinlich nicht mehr in petto, oder?
Viele Grüße,
Sebastian
|
|
|
Hubertus |

Forum-Meister
|
 |
Beiträge: 1.034
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.01.2012, 06:18
Titel:
|
 |
Moin,
du speicherst deine Figur mit den Linien wie in dem Link gezeigt ab und lädst dann das gespeicherte Bild wieder ein. Dann ist es ein "normales" Bild und du kannst es drehen oder sonstiges.
Die Alternative wäre, du indizierst die Bildpixel zu einer Linie:
Hubertus
|
|
|
batimania83 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 08.01.12
|
 |
|
 |
Wohnort: Bochum
|
 |
|
 |
Version: R2010
|
 |
|
|
 |
|
Verfasst am: 15.01.2012, 00:05
Titel:
|
 |
Hallo Hubertus,
nach einigem erfolglosen Rumprobieren habe ich jetzt doch noch einen ganz anderen Ansatz gefunden, sodass eine Rotation nicht mehr nötig ist...
Trotzdem aber noch einmal Danke für deine Bemühungen.
Viele Grüße,
Sebatsian
|
|
|
|
|
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 - 2025
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.
|
|