auswertung von bildern

nunatak

Mitglied
ich studiere Geographie und muss im Rahmen einer Hausarbeit sog. Dendrochronologien erstellen, heißt das ca. 60 Proben von Baumringen ausgewertet werden müssen. Die auf den Bohrproben zu sehenden Baumringe sollen dazu gezählt und genau ausgemessen werden.
Obwohl ich keine Ahnung vom Programmieren habe, bin ich der festen Überzeugung das sich etwas schreiben lassen müsste, was mir diese Arbeit abnimmt, weil ich es nicht einsehe tagelang damit zu verbringen, wobei sich wahrsch. auch zahlreiche fehler einschleichen würden.
kann mir da jemand starthilfe geben? mir wurde gesagt ich könnte mit dem Programm "processing" arbeiten? ansonsten steh ich voll auf dem schlauch
mein Ziel ist es die gescannten Bilder in das Programm zu laden, um dann eine Tabelle mit den Mächtigkeiten der einzelnen Baumringe, der Gesamtlänge der Probe und der durchschnitlichen Mächtigkeit der Ringe per Probe zu bekommen (die zwei letzten funktionen kann man auch excel überlassen). auf jeden fall sollte ich die daten danach in excell laden können.

Ich wollte die (ca.20 cm langen und 5 mm breiten) Proben einscannen um einen dpi wert zu haben auf den sich das "Programm" beziehen kann.

Mir ist klar dass mir keiner einen Einführungskurs geben kann oder will, ich würde mich über jeden tip freuen.
 

nrg

Top Contributor
also als absoluter laie wirst du da imho sehr schnell an deine Grenzen stoßen :). Ich bin leider nicht daheim an meinem Rechner, also kann ich dir jetzt nicht sonderlich mit Codebeispielen dienen.

http://www.java-forum.org/java-basics-anfaenger-themen/95095-bilddaten-auslesen.html

hier siehst du schonmal, wie man von einem Bild die Farbewerte auslesen kann. Mir würde jetzt auf Anhieb nur folgende Vorgehensweiße einfallen:

über das komplette Bild loopen und jedes Pixel abfragen
jedes bereits gelesene Pixel in einer Liste merken
sobald du auf einen Ring stoßt, gehst du mit einer bestimmten Farbtoleranz dem Ring entlang und merkst dir diesen
dann wieder Einsteigen und weiter in die Bildmitte vorarbeiten

zeig doch mal ein Beispielsbild. Vllt findet sich ja einer, der dir dabei hilft. Ich würde mich auch anbieten (falls sich Zeit bietet - versprechen tu ich allerdings nichts ;)).
 

nunatak

Mitglied
danke schon mal für den link. ich melde mich dann nochma wenn ich genauere Fragen habe, auf jeden fall hats mich gepackt und ich will das jetzt hinkriegen, kann doch kein hexenwerk sein, ihr tut doch alle nur so:)
 
Zuletzt bearbeitet:

nunatak

Mitglied
meine proben hab ich noch nicht gescannt, aber hier sieht man worum es geht, können z.t. sogar über 200 ringe auf 15 cm sein, die wie gesagt nicht nur gezählt sondern einzeln ausgemessen werden müssen!

dendrobohrer%20kern%207mm.jpg
:lol:
 

nrg

Top Contributor
achso. ich dachte eher an einen querschnitt (ist nur eine skizze)
baumringe31ts.jpg

Nur eben viel mehr Ringe.

Am besten du zeigst uns mal eine gescannte Probe, dann kann man sich das besser vorstellen :).

ich bin jetzt mal im Bett.

Nacht ;)
 

nunatak

Mitglied
hab jetzt dieses processing und erfolgreich ein baumringbild reingeladen, ich bin echt stolz auf mich:


PImage a; // Declare variable "a" of type PImage

void setup() {
size(400, 640);
// The file "jelly.jpg" must be in the data folder
// of the current sketch to load successfully
a = loadImage("baum.jpg"); // Load the image into the program
noLoop(); // Makes draw() only run once
}

void draw() {
// Displays the image at its actual size at point (0,0)
image(a, 0, 0);
// Displays the image at point (100, 0) at half of its size
image(a, 100, 0, a.width/2, a.height/2);
}


versuch grad rauszukriegen wie ich nur eine zeile von pixeln betrachte, aber es geht voran.

sorry für meine ahnungslosigkeit, und das mit "kein hexenwerk" nehme ich zurück wenn ich jemandem zu nahe getreten bin:) ist ja auch nicht komplex was ich da versuche aber ich bin ja auch erst 3 stunden im geschäft
 

Michael...

Top Contributor
Ich kenne die processing lib nicht und daher auch nicht deren Vorzüge.

Aber prinzipiell kann man sowas auch mit Standard Java machen (z.B BufferedImage)
-Bild einlesen
(-eventuell noch Kontrast erhöhen)
-eine oder mehrere Zeilen des Bildes durchlaufen
Anhand der Farbwechsel bekommt man die Anzahl der Ringe und wenn man die Auflösung weiss mit der das Bild eingescannt wurde kann man auch noch die Mächtigkeit der einzelnen Ringe bestimmen.
 

nrg

Top Contributor
@nunatak: up mal bitte eine Scanprobe :)
Was du vielleicht garnicht beachtest: bei gescannte Bilder ist kein 100%tig strukturierter Farbverlauf gewährleistet. Dh es kann sein, dass du ein oder sogar mehrere dunkle Pixel erwischt, die allerdings garkein Ring sind. Dh du musst immer die Pixel ausenrum abprüfen und evtl sogar Backtracking anwenden (versuch und irrtum / potentiellen Ring verfolgen und bei Irrtum rückgängig machen). Das wirklich Fehlerunanfällig zu programmieren, stelle ich mir eben garnicht so leicht vor (vorallem als Laie). Ich hätte es jetzt auch mit Standard Java macht. BufferedImage/Color bietet eigentlich alles, was man braucht...

edit: bitte Java-Tags benutzen
[.JAVA]
code //Tags ohne Punkte
[./JAVA]
 
T

Tomate_Salat

Gast
klingt doch recht interessant, was du da vorhast. Wäre doch auch eine Schöne ProjektIdee hier im Forum.
Ich würde das ganze ungefähr so lösen:

Ich nehme mal an, die Probe ist zumindest immer gleich Dick und nicht gebogen. Also würde ich erst das Bild einscannen. Dann auf einer Maske so ausrichten, dass Sie genau waagrecht (oder Senkrecht, wie mans will) liegt. Danach prüft man beginnend von einem ende zum anderen ob ein Ring vorliegt. Dieser wird dann geprüft und auf dem Bild markiert (was eine spätere Kontrolle ermöglicht). Nachdem das ganze geschehen ist, bekommt man das Bild angezeigt, die erkannten ringe markiert + eine Tabelle mit den Daten und einen Button "Export in Excel". Hier könnte man das Bild u.U nochmal händisch durchgehen, und nachprüfen ob die markierten Ringe auch Ringe sind und ob nichts vergessen worden ist. Dafür wäre auch eine Zoom-Funktion auf das Bild notwendig.

Finde für einen alleine, vor allem für einen Anfänger, ist dass viel Arbeit. Ich stelle mir schon die Bildauswertung sehr aufwendig vor. Vllt kann man das ein oder andere weg lassen, aber ich denke, wenn das Programm zu Studienzwecke eingesetzt werden soll, dann sollte man schon Kontrollmöglichkeiten haben.

Mit freundlichen Grüßen

Tomate_Salat
 

nunatak

Mitglied
hallo,
lib ist das verzeichnis wo ich unter begriffen wie "bild einlesen" den code finde?, bufferedimage ist ein extra programm? war grad auf java.sun.com binn da aber nicht so schlau draus geworden.
das mit den dunklen pixeln, vor allem wenn ich sehr kleine habe (die ich brauche) kann echt ein problem werden, das währe ein argument nicht nur eine zeile zu betrachten. andererseits kommen dann ja auch immer viele dunkle hintereinander, wenns eine borkenschicht ist, kann man dieses muster nicht erkennen lassen? bzw, aus dem gesamten farbverlauf eine kurve machen und mit scheitel und sattelpunkten arbeiten?
wenn ich überlege wie unterschiedlich meine proben nur aufgrund des alters sind (alles fichten) müsste man an der farbdifferenz für die markierungen auch drehen können. die proben kann ich grad nicht scannen, aber ihr könnts euch vorstellen anhand des fotos was ich oben hochgeladen habe (oder?)
da ich mit processing grad nicht weiterkomme, guck ich mir diese bufferedimage sache noch ma an. übrigens hat meine laborleiterin heute gemeint das wäre durchaus eine diplomarbeit wenns klappt! ich hatte nämlich heute meine letzte vorlesung und müsste mich demnächst mal um eine kümmern.
wenn ich das mit dem lib richtig verstanden habe, gibts da eins für java allgemein auf deutsch? oder dann speziell für bufferedimage?
ich hab mir da was gebastelt aus nem foro aus dem netz um die gescannte probe zu simulieren, ich hab aber bisher nur gerafft wie ich bilder mit link ins forum stelle, wie lade ich eins vom rechner hoch?
 
Zuletzt bearbeitet:

nunatak

Mitglied
okay ich habs, bufferd image ist nur ein bildformat, aber auf welcher oberfläche wird das ganze dann geschrieben?
bei processing hab ich schon das feld wo ich die eingaben mache und eins für die ergebnisse, würded ihr euch das selber erstellen?
 

nrg

Top Contributor
also ich sags mal ganz ehrlich. leute lernen nicht monatelang programmieren und du kommst hier ins forum und willst mal eben ein programm schreiben. der algo ist jetzt zwar keine große sache aber hat schon seine tücken. wir (bzw so gehts zumindest mir) können dir nicht jetzt im handumdrehen alle fundamentals von java hier im forum beibringen.
entweder du eignest dir mit fachliteratur wissen an (z.b. Galileo Computing :: Java ist auch eine Insel (8. Auflage)) oder du hoffst auf kooperative zusammenarbeit von forenmitglieder. ich geh doch auch net zu bayern münchen und sag "los lasst mich mal spielen. das kann ich auch!" (besserer Vergleich fiel mir grad net ein :D)

zum Bilder hochladen: Bilder hochladen - abload.de
ins Forum stellen: [.IMG]Ohne Punkte[./IMG]

edit: wie schon gesagt. gib mir ein beispielbild (reicht ne Skizze) und ich würd dir mal (quick and dirty) ein grundgerüst zusammenstellen
 
T

Tomate_Salat

Gast
Das Java ist auch eine Insel liest sich wie ein Wörterbuch :-!. Als ich mit Java angefangen hab, war das meine Einstiegsliteratur und man wird am Anfang echt überschwämmt schon alleine mit den Konstruktoren der einzelnen Funktionen so dass ich nicht wirklich wusste: Was ist für den Einstieg in die Sprache am wichtigsten. Das Buch ist ein Klasse nachschlagewerk und verwende ich deswegen auch. Aber für einen Einsteiger....der u.U nie Programmiert hat....Da gibt es bestimmt bessere fachliteratur zum Einsteigen. Ich würde mir auf jeden Fall an deiner Stelle ein anderes Buch als Einstieg wählen (welches ... ka, ich hab meine Java-Kenntnisse in einem Crashkurs in einem Praktikum soweit vertiefen können, dass ich genug Grundlage hatte mir alles weiter selbst beizubringen. Dabei hatte mir mein "Chef" Studentenscripte gebracht, welche ich einer Woche abgearbeitet hatte) und das Java ist auch eine Insel nebenbei als Nachschlagswerk benutzen.

MFG

Tomate_Salat
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Erste Schritte Warum misslingt die Auswertung des ersten Aufrufparameters? Java Basics - Anfänger-Themen 4
topi Parentabfrage, danach "if"-Auswertung Java Basics - Anfänger-Themen 3
T Operatoren Seiteneffekte bei Auswertung von Ausdrücken Java Basics - Anfänger-Themen 9
D Erste Schritte Weblog-Auswertung Java Basics - Anfänger-Themen 252
D statistische Auswertung Java Basics - Anfänger-Themen 1
C Auswertung Ausdruck mit Punknotation + Objekt als Parameter Java Basics - Anfänger-Themen 3
S JTextfield Auswertung mit FocusListener Java Basics - Anfänger-Themen 7
L Problem mit Auswertung von String mit if Java Basics - Anfänger-Themen 10
T Log-Datei Auswertung Java Basics - Anfänger-Themen 7
B [Javadoc] Tutorial für die Auswertung des docs Java Basics - Anfänger-Themen 15
W Datentypen Auswertung von Ausdrücken (Teil 1) Java Basics - Anfänger-Themen 7
C Denkanstoss für meine Auswertung Java Basics - Anfänger-Themen 5
C Auswertung Java Basics - Anfänger-Themen 5
B Auswertung eines Ausdrucks Java Basics - Anfänger-Themen 10
M seltsames Phänomen in der Auswertung boolscher Variablen Java Basics - Anfänger-Themen 7
V Grafische Auswertung (Ampel-System) Java Basics - Anfänger-Themen 12
M zahlenimport und auswertung Java Basics - Anfänger-Themen 5
Spandeli8 Erzeugte Objekte gegenüber Bildern hervorheben in Java Processing Java Basics - Anfänger-Themen 1
G Einbinden von Bildern in ausführbare Jar-Datei Java Basics - Anfänger-Themen 25
J Interface Einlesen von Bildern mithilfe von URL zu langsam Java Basics - Anfänger-Themen 5
S Jar Datei mit Bildern Java Basics - Anfänger-Themen 22
J Menü mit mehreren Bildern Java Basics - Anfänger-Themen 5
M Programm fertig stellen, Jar mit Bildern Java Basics - Anfänger-Themen 14
Spin Blatt mit Bildern füllen Java Basics - Anfänger-Themen 5
M Problem mit null pinterexception beim laden von Bildern Java Basics - Anfänger-Themen 20
P Erste Schritte Navigation mit wechselnden Bildern ... Java Basics - Anfänger-Themen 2
D .jar erstellen (mit Bildern) Java Basics - Anfänger-Themen 5
K einfaches Drucken von Text (und ggf Bildern,gemischt) Java Basics - Anfänger-Themen 11
M Java-Prog soll Texte innerhalb Bildern erkennen Java Basics - Anfänger-Themen 2
N Grafische Programmierung mit jeweils anderen Bildern bei versch. Ergebnissen Java Basics - Anfänger-Themen 9
S Bilder der Diashow werden in anderen Bildern angezeigt Java Basics - Anfänger-Themen 3
M Javaprogramm mit Bildern als .jar-Datei exportieren(in Eclipse) Java Basics - Anfänger-Themen 10
H Probleme mit .Jar in Verbindung mit Bildern Java Basics - Anfänger-Themen 10
D Auflösung (dpi) von TIFF und PNG Bildern auslesen Java Basics - Anfänger-Themen 9
Piwi Relative Pfadangabe bei Bildern Java Basics - Anfänger-Themen 2
F Unterschied im Einfügen von Bildern in Applets vs Applications Java Basics - Anfänger-Themen 6
P [Positiv Erledigt] Ordner mit Bildern auslesen und diese speichern Java Basics - Anfänger-Themen 7
N this beim einlesen von bildern Java Basics - Anfänger-Themen 4
D Wasserzeichen in Bildern Java Basics - Anfänger-Themen 16
G Verzeichnis auslesen mit sehr sehr vielen Bildern Java Basics - Anfänger-Themen 6
B Stack mit Bildern füllen Java Basics - Anfänger-Themen 2
S java.lang.NullPointerException bei Bildern Java Basics - Anfänger-Themen 13
B Fragen zu JAR mit Bildern Java Basics - Anfänger-Themen 4
B Problem beim Laden von Bildern mit AWT Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben