Bitmap mit Kurvendiagramm einlesen und in Tabelle umwandeln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
EyDu
User
Beiträge: 4874
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Mittwoch 26. September 2012, 20:14

Ich habe es gerade mal mit einem kubischen Spline getestet, da kann man bei einfachen Überschneidungen schon einiges rausholen. Es hängt, wie zu erwarten, von der dicke der gezeichneten Linien und dem Schnittwinkel ab, wie gut die Qualität ist. Prinzipiell kann man die Dicke natürlich recht leicht schätzen, ob man das will und ob es nötig ist, ist natürlich eine andere Frage.

Wenn beliebig lange Verdeckungen möglich sind, dann wären natürlich die Vektorgrafiken schon sehr von Vorteil.
Das Leben ist wie ein Tennisball.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Mittwoch 26. September 2012, 20:31

Ja, aber ich suche verzweifelt nach einem Weg, an die Kurven zu kommen. Ich bin anscheinend nicht der erste, der sich daran versucht. Ich hab es mit Inkscape versucht, aber der importiert die Kurven nur als ein Objekt. Da bin ich genauso weit wie jetzt. Hab es auch mit PDFMiner und PDFEdit versucht, aber auch da kommt ich nicht weit
EyDu
User
Beiträge: 4874
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Donnerstag 27. September 2012, 10:20

Das hier könnte dir vielleicht helfen. Das pdf wird zunächst in ein svg umgewandelt und anschließend muss nur noch nach path-Elementen gesucht werden. Die Daten sehen erstmal lesbar aus, scheint aber auch ein wenig davon abzuhängen, wie der Graph erzeugt wurde. Bei einem Paper bei mir war ein Graph enthalten aber nicht zu finden. Ich tippe mal darauf, dass er als eps eingebunden wurde und daher als Ressource irgendwie im pdf liegt - aber nur mal wild geraten ^^ Probiers am besten mal mit deinen pdfs aus.

Nun muss ich aber weiter arbeiten. Oder ich beobachte das Eichhörnchen, welches vor dem Fenster Futter vergräbt ...
Das Leben ist wie ein Tennisball.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Donnerstag 27. September 2012, 10:31

Ich hab leider keinen Adobe Illustrator. Das einzige Programm, mit dem das gehen könnte, wäre Inkscape, aber das importiert wie gesagt alle Kurven in einem Objekt und es scheint auch keine Gruppe zu sein, die man aufteilen könnte.
EyDu
User
Beiträge: 4874
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Donnerstag 27. September 2012, 10:50

Bei mir kommt mit Inkscape so etwas raus:

Code: Alles auswählen

<path
           d="m 91.26,295.74 220.8,0 0,-149.64 -220.8,0 0,149.64 z m 13.62,-14.7 194.1,0 0,-115.44 -194.1,0 0,115.44 0,-115.44 1.38,0 m -1.38,16.5 1.38,0 m -1.38,16.5 1.38,0 m -1.38,16.5 1.38,0 m -1.38,16.44 1.38,0 m -1.38,16.5 1.38,0 m -1.38,16.5 1.38,0 m -1.38,16.5 1.38,0 m -1.38,-115.44 194.1,0 m -194.1,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.8,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.8,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.8,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.8,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.8,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.8,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.8,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.8,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.8,-1.44 0,1.44 m 7.74,-1.44 0,1.44 m 7.8,-1.44 0,1.44 m 7.74,-1.44 0,1.44"
           inkscape:connector-curvature="0"
           id="path20"
           style="fill:none;stroke:#231f20;stroke-width:0.06;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" />

<path
           d="m 108.78,268.08 7.74,-16.68 7.8,-19.44 7.74,-2.94 7.74,-4.86 7.8,-2.52 7.74,6.78 7.74,0.66 7.8,-2.1 7.74,-4.74 7.8,1.2 7.74,-1.86 7.8,-9.78 7.74,-2.22 7.74,-21.48 7.8,0.9 7.74,0.06 7.8,9.06 7.74,1.56 7.74,-1.44 7.74,0.36 7.8,-3.96 7.74,1.68 7.8,3.06 7.74,1.14"
           inkscape:connector-curvature="0"
           id="path22"
           style="fill:none;stroke:#231f20;stroke-width:0.62599999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" />
Irgendwie müssen die Kurven auch trennbar sein, denn die Farbinformation sollte eine Kurve mehr oder weniger eindeutig identifizieren. Hast du vielleicht ein pdf als Beispiel bei dem es Probleme gibt, da könnte man vielleicht mal einen Blick drauf werfen. Oder eben auf das erzeugte svg.
Das Leben ist wie ein Tennisball.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Donnerstag 27. September 2012, 11:23

Etwas schwieriger als das bisherige ist dieses hier

http://www.leds.de/out/media/XLampXM-L.pdf

Da überlappen sich die rote und braune Kurve vor allem am Anfang fast vollständig.
EyDu
User
Beiträge: 4874
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Donnerstag 27. September 2012, 17:28

Ok, das mittels inkscape erzeugte svg sieht tatsächlich sehr undurchdringlich aus. Allerdings habe ich gerade eine seltsame Entdeckung gemacht, als ich mit pdftk eine Seite extrahiert habe:

Code: Alles auswählen

pdftk A=XLampXM-L.pdf cat A3-3 output out.pdf
inkscape -l out.svg out.pdf
Dann erhalte ich die Daten tatsächlich wieder in der von mir geposteten Form. Ich habe keine Idee ob das so bei allen pdfs reproduzierbar ist, da müsstest du wohl mal ein paar Testläufe starten. Sollte sich ja schnell und leicht automatisieren lassen.
Das Leben ist wie ein Tennisball.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Dienstag 2. Oktober 2012, 15:55

Angenommen, ich hab die Kurve in SVG, wie kann ich die dann auswerten? Ich hab hier eine, die mich noch interessiert

http://upload.wikimedia.org/wikipedia/c ... Curve1.svg
Antworten