CSV Datei in ein Bild umwandeln!

eka_automation

Grünschnabel
Hallo Leute,

ich würde gerne eine CSV-Datei in der in einer Matrix-Form Werte [64x50] in ein Bildformat umwandeln! Der Hintergrund ist hierbei, ich würde gerne eine Bildverarbeitung auf diese Werte anwenden, um bestimmte strukturen in der Datei erkennen zu können.

Genauer (Wem es eine Hilfe ist): Ich habe eine TOF-Kamera die den Abstand zwischen eines Objekt und eines Bildpunktes misst (Distanzenmessung). Jetzt möchte ich eine Objekterkennung mithilfe dieser Datei machen! Das heißt ich möchte die csv Datei in ein Bildkonvertieren!

Wäre euch Dankebar für eure Hilfe und für Lösungs-Vorschläge dankbar!

Grüße eka
 
Hi

ich hab nicht wirklich verstanden, wie du das meinst.
Einen Screenshot willst du nicht, oder?

Was sollen die CSV-Werte vom Bild angeben?
Pixelfarben? Punktabstände? ...?
 
Ok ist auch schwer zu erklähren! Nein ein Screenshot reicht nicht!

Also ich habe in einer Datei Werte in folgender art stehen!

123;112;12;123;34,56;23;123;...
64;45;45;75;75;345;567;43;...
.
.
.

Das ist eine Bild-Matrix die distanzen in mm enthält! Diese Distanzen wurden mit einer TOF-Kamera aufgenommen! Jetzt möchte ich aber ein Objekt in dieser Kamera erkennen! Dazu benötige ich aber ein BILD :) so jetzt würd ich gernie gesamte datei in ein Bild umwandeln. wo den einzelnen abständen einfach zumbeispiel ein grau wert zugewiesen wird! 0 = weiß - 99 = schwarz! zum beispiel! Farbe wäre auch inordung!

ich hoffe es ist jetzt besser erklährt!
 
Hallo,

also ich würde dir die Arbeit mit OpenCV empfehlen. Ist zum einen kostenlos und bietet zum anderen viele einfache Möglichkeiten, mit Bildern zu arbeiten bzw. diese zu manipulieren.
Dazu legst du dir dann ein Bild an (8bit reichen; 1 Ebene auch, da s/w wohl vorerst sinnvoll):
Code:
IplImage* iplImgDistance = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 1);
Dieses Bild durchläufst du jetzt Pixel für Pixel und füllst das entsprechende Pixel mit dem Helligkeitswert aus dem TOF.
Code:
for(int y = 0; y < iplImgDistance->height; y++)
{
    for(int x = 0; x < iplImgDistance->width; x++)
    {
         iNeuerWert =          // Hier das Pixel an Position x,y aus TOF auslesen

         // Hier den Distanzwert im Zielbild speichern
         iplImgDistance->imageData[y*iplImgDistance->widthStep + x] = iNeuerWert;
    }
}

[EDIT]
Nachtrag: Anzeige des Bildes
Code:
cvNamedWindow("Output", CV_WINDOW_AUTOSIZE ); 
cvShowImage("Output", iplImgDistance);
[/EDIT]

Wichtig ist, dass ein Pixel zwischen 0 und 255 liegen muss, also ggf. die Werte skalieren. Dazu vorher nach dem Maximum im TOF suchen.
Des weiteren ist in der Bildverarbeitung/Bildbearbeitung folgende Farbverwendung üblich: weiß = 255, schwarz = 0 (da es um Helligkeit geht und schwarz gleichbedeutend ist mit "keine Helligkeit").
 
Zuletzt bearbeitet:
Vielen DANK! Ich wollte auch mit OpenCV arbeiten! Ich schau mir das mal an und versuch des mal in mein Programm einzubinden!

wenn ich fragen habe kann ich mich ja bestimmt nochmal an dich wenden!

Danke nochmals************!
 
Danke, funktioniert gut :)
Das freut mich!

Was die Tutorials betrifft: ich könnte jetzt sicher googeln und dir die ersten paar Links schicken, die ich gut finde. Allerdings weiß ich nicht, auf welchem Stand du bist, was das Programmieren generell betrifft und wie es mit Englischkenntnissen aussieht. Von daher hier nur ein Link (http://www.semipol.de/wp-content/uploads/2008/07/tutorial.pdf) und der Tipp, dir folgendes Buch zu besorgen: O'REILLY - "Learning OpenCV". Da stehen zwar nicht alle Funktionen drin, aber für den Einstieg ist es super! Gibt es sicher in einer Bibo, falls es dir zu teuer ist...

Viel Spaß beim Lernen!
 
Danke nochmals! also meine c++ kenntnisse werden wieder besser :) und da ich das buch bezahlt bekomme, habe ich es gestern schon bestellt! English auch kein Problem - War erst 5 Monate in der USA! Von dem her schauen wirs wie es weiter geht!

Wäre super wenn ich mich nochmals an dich wenden könnte, wenn ich noch fragen hab!
Wieweit kennst du dich in OpenCV aus?
 
Puh... schwere Frage!
Also sagen wir mal so: ich arbeite fast täglich mit OpenCV, nutze aber meist grundlegende Funktionen oder Filter. Hin und wieder muss ich mal tiefer gehen und habe auch schon recht komplexe Funktionen an meine Bedürfnisse angepasst. Aber sobald ich was Neues benötige, suche ich natürlich auch im Buch oder Netz. Ist schwer zu sagen, ich beherrschte 2/3 oder 1/2 (oder ähnlich).
Solltest du tatsächlich mal nicht weiterkommen, frag einfach im Forum. Wenn nicht ich helfen kann, dann sicher jemand anderes. Und im Besten Fall findest du die Lösung selbst und kannst sie hier gleich präsentieren.
 
Zurück