|
|
math: alle Werte zwischen zwei Punkten |
|
Unbeholfener |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.07.2011, 12:23
Titel: math: alle Werte zwischen zwei Punkten
|
 |
Hallo,
ich habe eine Frage von math. Natur
Ich habe ein Bild (== Matrix) in denen ich zwei Punkte aussuchen. Nun will ich alle Werte zwischen diesen Punkten als Vektor haben und diese Plotten.
Das Problem: es funktioniert so nur, wenn ich die Entfernung der Punkte in Pixel kenne (was ich nicht tue, kann nur einfach den Gradienten ausrechnen)
|
|
|
|
|
Ajax |

Forum-Century
|
 |
Beiträge: 176
|
 |
|
 |
Anmeldedatum: 09.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.07.2011, 13:52
Titel:
|
 |
Hallo,
ich hätte da noch ein paar Fragen:
1. Du sagst, du hättest eine Matrix. Liegen die beiden Startpunkte in einer Zeile bzw. Spalte der Matrix? Falls nicht, wie sollen die verschiedenen Zeilen bzw. Spalten in den Vektor geschrieben werden?
2. Sind die Startpunkte "exakt" - ich meine kommen die Punkte sicher in der Matrix vor oder können auch Werte zwischen zwei Punkten auftreten.
3. Was ist "Laenge" bzw. wie hast du es ausgerechnet.
Stell doch mal ein kleines aber komplettes Beispiel hier rein.
mfg
|
|
|
Unbeholfener |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.07.2011, 14:22
Titel:
|
 |
|
 |
|
Erstma zu den Fragen von Ajax,
die Punkte liegen leider nicht in einer Zeile bzw. einer Spalte (dann wäre es sicherlich sehr trivial.
Dir startPunkt ist der eine Punkt in der Matrix mit dem X/Y-Werten.
Was ich im letzten Beitrag gepostet habe ist folgener Fall:
Ich habe einen Startpunkt, einen Gradienten und einen Abstand (habe ihn umbenannt in LAENGE) zum nächsten Punkt.
Mit dem geposteten kann ich via
mit einen Vektor erzeugen, der alle Werte des Bildes zwischen den Punkten enthält.
Das gleich möchte ich, nur das ich nun nur die beiden Koordinaten der Punkte innerhalb des Bildes haben.
Bsp.: Ich habe eine Bild (nxn) und die beiden Punkte P1(10,10), P2(20,10)
in diesem Fall wäre es sehr einfach, da es genau 10-Werte gibt.
Der Vektor den ich suche wäre in dem trivialen Fall
ergVektor=pic(10:20, 10)
Nun liegen aber die Punkte nicht auf der gleichen X- oder Y-Achse.
Bsp: Punkte P1(1,1), P2(5,6)
Nun wäre der ergVektor durch runden:
ergVektor=[pic(1,1), pic(2,2), pic(3,3), pic(4,4), pic(5,5), pic(5,6)]
|
|
|
Unbeholfener |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.07.2011, 14:24
Titel:
|
 |
Ich entschuldige mich für die ganze Rechtschreibfehler (habe ich natürlich erst nach dem Posten sehen)
|
|
|
Ajax |

Forum-Century
|
 |
Beiträge: 176
|
 |
|
 |
Anmeldedatum: 09.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.07.2011, 15:01
Titel:
|
 |
|
 |
|
Hallo,
ich bin um ehrlich zu sein noch nicht ganz sicher, wie genau du auf das Ergebnis kommst bzw. wie genau du vorgehst oder was genau du haben willst. Wenn ich es richtig verstehe, dann hast du zwei Punkte in einem Bild. Du legst eine Verbindungsgerade zwischen die Punkte und willst alle geschnittenen Pixel berechnen.
Was ich nicht verstehe ist dein "Gradient". Zeigt der Gradient auf das nächste Pixel? Oder interpolierst du bei dem Gradienten zwischen den Punkten an den Stellen deines Gitters? Oder gibt dir der Gradient nur die Steigung der Verbindungsgeraden an und du berechnest damit immer den nächsten Gitterpunkt?
So oder so: Du sagst, dass dein Code funktioniert wenn du die Anzahl der Pixel kennst? Die maximale Anzahl der Pixel kannst du jedoch berechnen indem du den Start- und Endwert von einander abziehst und durch die Pixelbreite teilst (Addition von x- und y-Richtung). Geht die Gerade genau durch eine Ecke, dann verringert sich die tatsächliche Anzahl der Pixel. Daher würde ich anstelle der for- Schleife eine while Konstruktion nehmen mit while x <= n_max und einem Abbruchkriterium wenn der Endwert des Pixels vorher erreicht wird.
Solange du nur die geschnittenen Pixel haben willst und nicht die Schnittlänge sollte das nicht all zu schwer werden.
mfg
|
|
|
|
|
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.
|
|