|
|
|
|
|
|
Floydian
Registrierungsdatum: Jan 2004
Ort: Freistaat Franken
Beiträge: 243
|
datenvektor aus Bild extrahieren
hallo,
ich habe im moment folgendes Problem: in einer Publikation, die mir als PDF vorliegt befindet sich ein Graph mit Messwerten. Für Simulationszwecke müsste ich auf die dort aufgezeichneten Daten zurückgteifen. Das Bild ist in guter Qualität und relativ scharf vorhanden. Man sieht lediglich die Achsen mit Teilung und Beschriftung sowie den Graphen; kein Gitter im Hintergrund (s. Anhang). Alternativ hab ich das auch mit rotem Graphen.
Kennt jemand ein Tool, mit dem man die Daten als Vektor aus solchen Diagrammen zurückgewinnen kann?
greez,
TRS13
//edit: Anhang gelöscht
|
09. 07. 2008, 08:11
|
#1
|
|
one name - one legend
Registrierungsdatum: Jun 2000
Beiträge: 5.087
|
Re: datenvektor aus Bild extrahieren
Zitat:
|
Das Bild ist in guter Qualität und relativ scharf vorhanden.
|
Darf ich mal laut lachen?
Und für den Rest hat es Lineal und Taschenrechner bzw Adobe Reader eine Messfunktion.
|
09. 07. 2008, 13:22
|
#2
|
|
Mitglied
Registrierungsdatum: Apr 2006
Beiträge: 81
|
Re: datenvektor aus Bild extrahieren
o_O
Wie bitte?
Ein Vektor?
Dafür brauchst du Spezialwerkzeug mit dem(seit der Computerisierung) kaum noch jemand umgehen kann.
Die Leute nannten es einst Geodreieck.
Heutzutage heißt es immer noch Geodreieck.
Mit Hilfe dieser Waffe und deiner Augen mußt du die Funktionswerte Punkt für Punkt je nach gewünschter Genauigkeit und Bock auslesen.
Schade, dass du keine ordentliche Achsbeschriftung hast, denn welche Einheit hat denn dein Funktionsgraph?
Tip:
Das kannst du nicht mit einem Geodreick ermitteln
@Topic
Warum ist denn der Gedanke, dass für jedes kleine Problemchen ein Programm existiert so weit verbreitet?
|
09. 07. 2008, 20:19
|
#3
|
|
Floydian
(Threadstarter)
Registrierungsdatum: Jan 2004
Ort: Freistaat Franken
Beiträge: 243
|
Re: datenvektor aus Bild extrahieren
Lachen darfst du gerne jederzeit. Hab ich nix dagegen, nur mit dem Taschenrechner ist das nicht ganz so einfach; das is nämlich leider kein Sinus oder Ähnliches, da hilft auch kein Taschenrechner; und eine Funktion ist da auch nicht so einfach zu bestimmen. Wenn das so einfach gewesen wäre hätte man das Ding nicht mittels FEA berechnet :-/ Die Kurve könnte ich im Nachhinein, wenn ich einen Signalvektor habe, noch aufbereiten und hochsamplen.
greez
TRS13
|
09. 07. 2008, 20:20
|
#4
|
|
Floydian
(Threadstarter)
Registrierungsdatum: Jan 2004
Ort: Freistaat Franken
Beiträge: 243
|
Re: datenvektor aus Bild extrahieren
Nachtrag:
Ich weiß ja, dass es so ein Tool gibt. Ich habs schon mal unterm Cursor gehabt, aber jetzt such ich's verzweifelt und find's nimmer  Und Matlab kann leider keine Bilder importieren^^
Geodreieck ist mir zu ungenau und fehleranfällig; da trau ich mir nicht
Übrigens sind die Achsen vollständig beschriftet: y is in Millitesla und x in Radian; das hat keine Einheit.
greez,
TRS13
|
09. 07. 2008, 20:38
|
#5
|
|
seit Hartz IV Moderator
Registrierungsdatum: Aug 2001
Ort: zu Hause, in 123XX
Beiträge: 10.377
|
Re: datenvektor aus Bild extrahieren
Mach einen Screenshot oder ein Photo, dann kannst Du aus dem Bitmap die diskreten Werte holen
Gruss
Tim
|
09. 07. 2008, 20:43
|
#6
|
|
Floydian
(Threadstarter)
Registrierungsdatum: Jan 2004
Ort: Freistaat Franken
Beiträge: 243
|
Re: datenvektor aus Bild extrahieren
Hi,
ich hab mich geirrt: Matlab kann /doch/ direkt Bilder importieren, die liegen dann als 3dimemsionale Matrix vor: [1:Breite,1:Höhe,[R,G,B]].
Hier mal mein Vorgehen, falls jemand über dasselbe Problem stolpern sollte. Die numerischen Werte habe ich direkt abgelesen. Eigentlich ganz einfach...
greez,
TRS13
Code:
imread('plot.bmp','bmp'); %Lade Bild
image(c); %Bild anzeigen, um Pixel rauslesen zu können
cext=c(23:400,47:540,:); %Bildausschnitt extrahieren
image(cext); %Neues Bild anzeigen
cext = cext(:,:,2); %der Graph ist rot --> extrahiere Grün- werte
for i=1:494 %von "oben" an die kurve annähern. da der Graph
for j=1:378 %rot war, sind die Grün-werte signifikant, wenn
if cext(j,i)==0 %sie gleich Null sind. die Spalten und reihen
g_vec(i)=j; %werden durchgezählt; Speichern und Abbruch bei
break %erstem signifikanten Pixel in Spalte
end % ==> nächste Spalte
end
end
g_vec=378-g_vec; %Umdrehen des Graphen, da bei Bildern 0|0 oben links
for i=1:494 %Lücken füllen
if g_vec(i)==378
g_vec(i)= g_vec(i-1);
end
end
g_vec=(1/3000)*g_vec; %Werte anpassen
x_vec=[1:494]; %zugehörigen x-vektor in richtiger Länge erstellen
x_vec=(1/((509-47)/(2*pi)))*x_vec; %Faktor = Anz samples von 0 bis 2*pi / 2*pi
plot(x_vec, g_vec); %Graph zeichnen
%fertig
|
10. 07. 2008, 08:56
|
#7
|
|
ex-Moderator
Registrierungsdatum: Jun 2000
Ort: /home/vmk
Beiträge: 15.402
|
Re: datenvektor aus Bild extrahieren
Natürlich kann man die numerischen Werte aus einem Graphen ablesen, sonst wäre der Graph ja sinnlons.
Falls es mal komplizierter sein sollte, dann kannst du ja z.B. http://www.frantz.fi/software/g3data.php oder ein ähnliches Programm benutzen.
Wieso hast du das eigentlich ein Elektronik gepostet? In diesem Forum geht es doch um Löten & Co.
|
10. 07. 2008, 23:57
|
#8
|
|
Floydian
(Threadstarter)
Registrierungsdatum: Jan 2004
Ort: Freistaat Franken
Beiträge: 243
|
Re: datenvektor aus Bild extrahieren
Ha, das war *genau* das Tool, das ich gemeint hatte, thx
Jetzt hab ich mir die Mühe zwar schon in MalLab gemacht, aber auf das Problem stoße ich sicher wieder mal^^
Genaue Werte kann man aus Graphen nicht ablesen, sonst wären ja graphische Lösungsverfahren auch exakt, sind sie aber nicht... Die Zahlenwerte sind zwar im Bild vorhanden, aber eben eher für den Menschen gedacht, als für die Maschine: man kann sich die Daten dann besser vorstellen, aber gerechnet wird trotzdem noch mit numerischen Werten.
Und warum im Elektronikforum? Da eind einfach eher die Leute drin, die über die selben Probleme stolpern.
greez
TRS13
|
11. 07. 2008, 17:46
|
#9
|
|
Alle Zeitangaben in UTC +1. Es ist jetzt 21:32 Uhr.
|
|