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

Traceprogramm bzw. Ausleseprogramm für eingescannte Diagram

 

mauskill2
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 05.07.07
Wohnort: bei Paderborn
Version: R2007a
     Beitrag Verfasst am: 13.08.2008, 16:07     Titel: Traceprogramm bzw. Ausleseprogramm für eingescannte Diagram
  Antworten mit Zitat      
Hallo zusammen,

ich bin im Moment auf der suche nach einem Programm, dass mir aus einem eingescannten Diagramm die Messwerte extrahiert.

Gibt es sowas schon?
Eine Idee wie man es Programmieren könnte habe ich zwar schon aber vielleicht brauch ich es dann doch nicht selber machen Smile

Grüße
Mauskill2
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 13.08.2008, 16:41     Titel:
  Antworten mit Zitat      
Moin,

wenn das Diagramm ein fig-file ist, dann kannst du es mit
Code:
h = hgload('filename');
einlesen und dann wie "gewohnt" mit
Code:

x = get(h,'DefaultLineXData');
y = get(h,'DefaultLineYData');
z = get(h,'DefaultLineZData');
 

Ich hoffe das klappt...

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
mauskill2
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 05.07.07
Wohnort: bei Paderborn
Version: R2007a
     Beitrag Verfasst am: 13.08.2008, 16:49     Titel:
  Antworten mit Zitat      
Hi,

hm...Danke...aber leider ist es nicht so einfach...es geht schon um jpg oder wie auch immer also um Pixelbilder...

Grüße
Mauskill2
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 13.08.2008, 17:14     Titel:
  Antworten mit Zitat      
Hi,

das könnte man wohl selber mache, Bild einlesen, mit
Code:
Position und Ausrichtung des Koordinatensystems bestimmen und dann gewünschte Punkt einlesen.
Sowas gibts aber auch fertig für Matlab: http://www.mathworks.com/matlabcent.....=8139&objectType=file
und auch als Standalone-Anwendung, z.B. http://www.frantz.fi/software/g3data.php
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
mauskill2
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 05.07.07
Wohnort: bei Paderborn
Version: R2007a
     Beitrag Verfasst am: 13.08.2008, 17:40     Titel:
  Antworten mit Zitat      
Danke werd ich mal ausprobieren mit digitize...wobei das ja alles leider nicht automatisch abläuft Sad (man hat ja seinen Anspruch Smile).

Ein scheinbar brauchbarer Ansatz für meine Wünsche ist unter
http://blogs.mathworks.com/steve/2006/02/21/tracing-george/
zu finden. Bin da gerade am Experimentieren mit. Mache gleich aber Schluss und versuche Morgen erst wieder mein Glück...

Grüße
Mauskill2
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 13.08.2008, 17:45     Titel:
  Antworten mit Zitat      
Ok, das sieht gut aus, das hätte ich auch mal gebrauchen können.
Ich könnte mir aber vorstellen, dass das frickelig wird, wenn das gescannte Bild mehr enthält als die Messkurve, z.B. ein Gitternetzlinien oder einen Rahmen oder so.
Wäre aber toll, wenn Du von Deinen Versuchen berichten könntest...
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
mauskill2
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 05.07.07
Wohnort: bei Paderborn
Version: R2007a
     Beitrag Verfasst am: 15.08.2008, 11:30     Titel:
  Antworten mit Zitat      
Hallo zusammen,
natürlich kann ich und werde auch Smile (hat jetzt leider etwas gedauert Sorry)

Das Programm steht soweit und geht bedingt. Es darf natürlich nur die Messkurve auf dem Bild vorhanden sein (und darf auch nicht unterbrochen sein), sonst müsste man noch ne Art Bilderkennung einbauen die es schafft die Messkurve vom Rest der Bildanteile zu unterscheiden, dass ist in meinem Fall aber schnell mit Paint (bzw. einem Graphikprogramm der Wahl) gemacht. Außerdem kann Aufgrund der Verwendung von bwboundaries() kein evt. vorhandener Offset beachtet werden. Die Werte sind leider auch weder in x noch in y Richtung linear aufgetragen, sondern immer mit unterschiedlichen Abständen versehen, was für die nachträgliche Verwendung zumindestens in meinem Fall nicht so gut ist.

Bei der Programmierung ergaben sich noch einige andere Probleme.
So geht bwboundaries() einmal um die Messkurve rum (also habe ich die Werte quasi doppelt). Das nächste Problem ist das die y-Achse gedreht wird (da habe ich nicht verstanden warum) so das meine Messkurven erst immer um die y-Achse gedreht war.

Grüße Mauskill2

PS: Bei Bedarf kann ich das Programm evt. (muss erst noch was abklären) auch hier Veröffentlichen.

EDIT: x,y vertauscht Sad

Zuletzt bearbeitet von mauskill2 am 28.08.2008, 14:55, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
mauskill2
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 05.07.07
Wohnort: bei Paderborn
Version: R2007a
     Beitrag Verfasst am: 28.08.2008, 12:43     Titel:
  Antworten mit Zitat      
Hallo zusammen,

Nur der Vollsdändigkeitshalber Smile
Das Problem lässt sich auch lösen indem man die Pixel eines Bildes durläuft, die schwarzen (bzw. weißen) Pixel raussucht mittelt und dann als x,y Werte für Matlab rausschreibt. Ist zwar immer noch einfach aber sollte reichen. Vorteil ist man kann Rechenzeit sparen, indem man vorher schon die Schrittweite auf der x-Achse angibt und auch nur die Spalten betrachtet. Außerdem ist die Kurve dann auch in x-Richtung linear.

Probleme:
Auch dabei durfen keine anderen Elemente in dem Bild sein als die Messkurve. Beim Programmiren muss man etwas aufpassen, da a) Spalten (von Pixel) nicht von unten nach oben (wie bei Diagrammen) gezählt werden sondern von oben nach unten (daher auch die von mir erwähnte Drehung der Messkurve um die y-Achse). Außerdem scheint Matlab die Pixelangaben mit Pixel(y,x) zu beschreiben und nicht wie üblich mit Pixel(x,y).

Grüße
Mauskill2
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.