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

Winkel auf Bild erkennen

 

LaSo
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2016, 14:53     Titel: Winkel auf Bild erkennen
  Antworten mit Zitat      
Hallo

ich bin leider ein absoluter Neuling, daher entschukdigt bitte, wie ich alles beschreibe.
Folgendes Problen:
Ich habe Bilder von Blättern (Windkraftanlagen) von unten fotografiert und möchte anhand dieser Bilder festellen, welchen Winkel das Blatt zu diesem Zeitpunkt hat. Als Referenz kann man hierfür die Befestigung der Nabe der Anlage auf dem Bild nehmen.
Ich habe mal ein Beispielbild dabei. Die Bilder können aber noch angepasst/neu gemacht werden, je nachdem, was ich dann benötige. Das weiß ich ja gerade noch nicht...
Also es geht um das Blatt, dass nach unten zum Boden zeigt.

1.Frage: Welche Tools benötige ich hierfür neben MATLAB? Image Processing Toolbox?

2.Frage: Ist dies mit MATLAB möglich und wo fange ich am besten an das zu verstehen?

Gruß
LaSo

R0013554.JPG
 Beschreibung:

Download
 Dateiname:  R0013554.JPG
 Dateigröße:  1.58 MB
 Heruntergeladen:  580 mal
Private Nachricht senden Benutzer-Profile anzeigen


Maxx_BMT
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 75
Anmeldedatum: 09.10.13
Wohnort: Ilmenau
Version: R2011a, R2016a
     Beitrag Verfasst am: 16.03.2016, 13:17     Titel:
  Antworten mit Zitat      
Hallo,

also möglich ist es bestimmt. Aber es kommt ein bisschen drauf an, ob ich es richtig verstanden habe. Du möchtest sozusagen aus dieser Sicht bestimmen, in welchem Winkel ein bestimmter Rotor steht zu einem bestimmten Bezugspunkt? Ist das so ungefähr richtig?

Hast du evtl. noch andere Ansichten zur Verfügung? Ich würde dir natürlich eine Frontalansicht empfehlen, welche es sehr einfach macht. Ansonsten würde ich mal schauen ob du eine bestimmte Struktur hast die du während der Drehung tracken kannst, um diese als Positionsreferenz zu nehmen.
Du kannst auch als Referenz die Stellung zwischen zwei Rotoren nehmen und dann versuchen, immer den am besten zu bestimmenden Rotor zu nehmen, dessen Winkel zum Turm zu bestimmen und dann kennst du ja die restlichen Winkel.

Am besten du sagst einfach nochmal, welche Ansichten du zur Verfügung hast;)

Der Rest ist eigentlich nur ein bisschen Strahlensatz und Bildverarbeitung;)


LG
Maxx_BMT
_________________

Mathematik ist ein geistreicher Luxus. - Friedrich der Große
Private Nachricht senden Benutzer-Profile anzeigen
 
LaSo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2016, 11:06     Titel:
  Antworten mit Zitat      
Hallo Maxx

Danke für deine Antwort. Ich stehe immer am Boden und fotografiere nach oben ein Blatt. Das heißt ich sehe die Blattspitze zuerst. Eine andere Ansicht gibt es nicht. Das Blatt kann sich drehen, ist auf den Fotos aber immer auf Null Grad eingestellt. Ich möchte an den Fotos nachweisen, ob es tatsächlich Null Grad sind oder es um ein paar Grad abweicht.

Wie kann ich dies mit Matlab machen?
Private Nachricht senden Benutzer-Profile anzeigen
 
medtech
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2016, 11:08     Titel:
  Antworten mit Zitat      
Grüß dich,

also ich habe auch mal eine Winkelberechnung anhand von Bildern durchgeführt.
Das ist vom Prinzip her auch recht einfach, jedoch besteht bei dir das Problem der Perspektive. Ich hatte damals eine ganze normale Draufsicht auf mein Bild.

Willst du den Winkel aus deiner Sicht bestimmen( also von deinem Standpunkt aus) und ihn als Referenz nehmen oder möchtest du daraus im Prinzip eine Draufsicht Simulieren?

Also vom Vorgehen her kannst du es so machen bzw ich hatte es so gemacht:

Ich habe eine GUI (Grafische Oberfläche) mit guide erstellt. Dort konnte man dann das zu untersuchende Bild hineinladen.
Dann wurde ein Buttondown event erstellt bei der im Bild meine mit der Maus markierte Stelle farblich gekennzeichnet wurde und die Pixelwerte in textboxen angezeigt wurden.
Da kannst du dann ja einmal einen Referenzpunkt anklicken und einmal deine Rotorspitze.
Mit diesen Pixelwerten kannst du dann über trigonometrie den Winkel herausfinden. Jedoch wäre es wohl sinnvoll auch deinen Eigenen Standpunkt Winkelmäßig miteinzubeziehen.

Oder hab ich dein Vorhaben falsch verstanden?

VG medtech
Private Nachricht senden Benutzer-Profile anzeigen
 
LaSo2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2016, 16:55     Titel:
  Antworten mit Zitat      
Hallo medtech

an sich ist deine Lösung ok, aber absolut zu ungenau. Die entstehenden Abweichungen wären viel zu enorm, wenn ich Punkte nur durch einen Klick mit meiner Maus selber festlegen muss...
Ich möchte über Matlab Regeln festlegen, wie "nehme den äußersten Punkt von diesem Abschnitt als Referenzpunkt", "bild ein Dreieck aus den Punkten", "fälle ein Lot von dem punkt auf diese Linie"... So wie man es per Hand in der Schule machen würde, nur eben professionel mit möglichst geringer Abweichung
 
medtech
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.04.2016, 08:28     Titel:
  Antworten mit Zitat      
Guten Morgen,

tut mir leid ich hatte mich falsch ausgedrückt bei der Beschreibung.
Die Gui hatte bei mir nur den Sinn eines Korrekturprogramms.
Meine Hauptrechnung und Markierung der den Winkel bildenden Punkte fand zuvor in einem anderen Programm rechnerisch statt.
Es kommt eben darauf an auf wie viel Grad man genau sein will.
Das Problem ist eben, dass man mit Pixeln arbeiten muss und da diese eben keine analoge Größe darstellen handelst du dir eh eine Ungenauigkeit ein.
Bei mir waren es geschätzt +- 3~5 Grad. Dabei kam es noch auf andere Faktoren an.

Inwiefern seine Abweichung sein darf muss er wissen und seine Methodik danach ausrichten.

VG medtech
Private Nachricht senden Benutzer-Profile anzeigen
 
LaSo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2016, 10:26     Titel: LaSo2
  Antworten mit Zitat      
Hallo Medtech

welches Programm hast du denn benutzt, um die Winkel auf deinem Bild zu bestimmen bevor du MATLAB als Korrektur benutzt hast?

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
medtech
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2016, 10:39     Titel:
  Antworten mit Zitat      
Hallo,

das Hauptprogramm lief ebenfalls in matlab. Dort wurden dann die Referenzpunkte auf dem Bild rechnerisch bestimmt und in arrays gespeichert. Mittels dieser konnte man dann ganz einfach die Winkel bestimmen. Du musst nur noch deine Pixelgröße wissen/ berechnen.
Da die Bilder mit einer Webcam als videoinputobject aufgenommen wurden habe ich mir da die Pixelgröße über den Propertyinspector von matlab ausgerechnet.

Vg medtech
Private Nachricht senden Benutzer-Profile anzeigen
 
LaSo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2016, 10:48     Titel: LaSo2
  Antworten mit Zitat      
Hallo
das verstehe ich nicht ganz:
ich muss zwei Linien in meinem Bild einzeichnen, von denen ich den Winkel benötige. Aber wie "erstelle" ich diese Linien?
Die eine Linie existiert quasi auch als Strich in meinem Bild und die andere linie muss ich durch zwei Punkte bestimmen lassen

Wie gehe ich da vor?
Ich stehe auf dem Schlauch Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
medtech
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2016, 10:54     Titel:
  Antworten mit Zitat      
naja du kannst über die line() Methode schonmal deine Linien plotten.
Dann den schnittpunkt berechnen und der is dann dein erster Punkt im Dreieck.
und als die anderen beiden Punkte könntest du ja die start oder enddaten einer jeden linie nehmen.
Jetzt fehlt ja nur noch dann der sin cos oder tan je nach dem wie du's machst.

VG medtech
Private Nachricht senden Benutzer-Profile anzeigen
 
LaSo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2016, 11:30     Titel:
  Antworten mit Zitat      
Das verstehe ich leider nicht.
Ich zeige dir mal anhand eines Bildes mein Problem:
links das Originalfoto. Rechts die Linien von mir, die ich erstellen will und dessen WInkel ich benötge.
Rote Linie durch Punkt 1 und 2 soll als Referenz bestimmt werden.
Grüne Linie durch Punkte 3 und 4 soll den Winkel ergeben,d er für mich entscheidend ist

Wie gehe ich da vor?????

Problembeschreibung MATLAB.jpg
 Beschreibung:

Download
 Dateiname:  Problembeschreibung MATLAB.jpg
 Dateigröße:  164.66 KB
 Heruntergeladen:  530 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
medtech
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2016, 11:37     Titel:
  Antworten mit Zitat      
Ich würde zur Visualisierung beide Linien über das ganze Bild laufen lassen.
Dann würde ich schauen, dass ich irgendwie den Schnittpunkt raus bekomme.
(Linie als Funktion setzen, ableiten, gleichsetzen) wenn ich mich da auf Anhieb richtig erinnere^^ und dann könntest du dir je einen Punkt auf der roten und gelben geraden nehmen und dein Dreieck daraus bilden.
So mal mein erster Gedanke, musst schauen ob es so umsetzbar ist.

jetzt verstanden?
VG medtech
Private Nachricht senden Benutzer-Profile anzeigen
 
LaSo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2016, 11:50     Titel:
  Antworten mit Zitat      
ja aber das GROßE Problem ist ja, dass ich überhaupt nicht weiß, wie ich überhaupt diese Linien hinbekommen soll. Wie "findet" Matlab meine Punkte durch die die Linien ´laufen sollen?
Vielleicht reden wir auch gerade nur aneinander vorbei Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
medtech
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 21.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2016, 11:54     Titel:
  Antworten mit Zitat      
wie viele Bilder hast du denn?
Du könntest z.B. eine gui machen in der du das Bild einfügst und dort mittels slidern u.ä. die Linie manuell einstellst. Die 'Koordinaten' dieser Linie kannst du dir dann ja in einem array speichern.
Somit hast du die x und y Werte deiner Linien.
Dann müsstest dir nur noch den Schnittpunkt ausrechnen oder . je nach dem wie genau du es brauchst, kannst du auch mit nem mouseklick den Schnittpunkt von Hand anklicken und die den Pixel-Wert ebenfalls speichern lassen.
Die Berechnung ist dann trivial.

VG medtech=)
Private Nachricht senden Benutzer-Profile anzeigen
 
LaSo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2016, 08:24     Titel:
  Antworten mit Zitat      
Hallo mechtech,

ich habe nun beschlossen es mit Matlab gui zu versuchen und dass mir Linien einzeichnen mittels Mausklick völlig ausreicht.
Wie gehe ich nun vor? Gibt es vielleicht Beispiele, die mir weiterhelfen das ganz schnell umsetzen zu können?

Ich stehe da noch bei null

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.