bild aufmachen und Pixel lesen.



  • kennst du google? ein beispielprogramm welches z.B. libpng verwendet um PNG files zu laden, und wo man sieht wie man an die pixeldaten drankommt, findet man in ca. 1-10 sekunden, je nachdem wie schnell man tippen kann.



  • gelöscht



  • Danke hustbaer.

    ich versuche seit Samstag und nix wirklich gefunden was für mich alles anfang kann, oder ich bin dumm für das suchen und vielleicht auch für programmieren.



  • "libpng example program":
    http://zarb.org/~gc/html/libpng.html

    ansonsten sieh dir die FreeImage an:
    http://freeimage.sourceforge.net/

    ist noch etwas einfacher zu verwenden als die libpng direkt.
    beispielcode suche ich übrigens auch oft über Google-Codesearch: http://www.google.com/codesearch?hl=en&start=10&sa=N&q=fipimage

    falls du kein englisch kannst: lernen, lernen, popernen.



  • Viele Danke,

    Ich gebe mir wirklich mühe dass ich allein zu recht komme, da ich auch was lernen möchte.



  • Warum soll es am Anfang png sein? Reicht evtl. ein unkomprimiertes Format wie bmp oder tga?
    Oder: Warum sofort Dateien laden?
    Setze dich doch einmal damit auseinander, was dein Betriebssystem für Ansprüche stellt, dass ein Speicherbereich als "Bild" dargestellt wird.
    Bei Windows ist es bspw. das Bitmap-Format. Setze dich doch erst einmal damit auseinander, Fallstricke lauern zuhauf (Top-Down/ Bottom-Up Bitmaps etc.).
    Wenn du wirklich damit vertraut bist, nötige Strukuren anzufordern und darin Daten (Pixel) zu verändern, dann kannst du dir ja Bildformate anschauen.
    Eventuell hast du bis dahin eine Klasse geschrieben, die viele Funktionen zur Erstellung und Veränderung bereit stellt.
    Dann ist der Punkt gekommen, sich ganz gezielt einzelne Formate vorzunehmen und mit Hilfe von Bibiotheken Funktionen zu schreiben, die Dateien lesen und aufbereitete Daten direkt "in deine "Bildklasse" schreiben. Dann wäre es vollkommen egal, ob die Datei als jpg,png,bmp oder sonstwas gespeichert wurde.

    Alternative: Schau dir für Windows bspw. GDIPlus an, das erledigt das Meiste...



  • Danke Vicious Falcon;

    es geht darum um eine eine kaliebrierungs normal mit der LEDS.

    ich habe ein platte mit 20 LEDs gebört dann habe ich angeleuchtet dann habe ich mit der kamera eine Bild aufgenommen.

    jetzt muss ich dieser Bild pixel nach pixel gehen und dann der schwerpunkt von jeder LED finden, leider sehen der LEDs von weit nicht wie kreis, deswegen muss ich jeder das ganze pixel nach pixel.

    ich habe bis jetzt soweit alles gemacht ausser der Algorithmus noch nicht.

    Ich werde mich sehr freuen auf irgendwelche Hilfe.



  • Wenn das Bild direkt als PNG vorliegt, kannst du es in einem beliebigem Malprogramm in ein unkomprimiertes Format deiner Wahl abspeichern. Wenn du über dieses (unkomprimierte) Format Bescheid weißt (dich einliest), kannst du direkt einzelne Pixel des Bildes bestimmen, die Darstellug des Bildes braucht dich noch nicht einmal zu kümmern.



  • Danke
    du meinst damit "BMP und TGA", hast du zufällig eine schleife wie ich der der Pixel von der Bild lese?.

    das problem, muss ich der ganze Pixel von jeder LED finden und dann der schwerpunkt rechnen und dann gehe ich zu der zweite LED.....



  • Der Algorithmus zum Finden der einzelnen Maxima ist ein ganz anderes Problem...
    Speicher' das Ganze doch als unkomprimiertes TGA. Der Header ist einfach aufgebaut (unbedingt beachten: das Padding muss bei 1 Byte liegen!).
    Der Datenblock folgt auf diesen Header. Speicher' das Ganze als 32 Bit und du kannst mit einem unsined int* von Pixel zu Pixel wandern.



  • gelöscht!



  • Ohne dich entmutigen zu wollen ... such dir was anderes und sag das dir für diese Aufgabe die Grundlagen fehlen ... wenn du noch nicht mal eine Schleife zustande bekommst die über ein 2dim Array von Daten läuft (... was deine stänmdigen Anfragen nach Code vermuten lassen ...) dann wird das was du vorhast zu kompliziert.

    Wenn du dich da wirklich durchbeissen willst schau nach Bibliotheken die dir Teile deines Vorhabens abnehmen (zB Bild Laden: http://freeimage.sourceforge.net/ wie hustbärchen schon vorschlug). Oder nimm gleich eine Bildverarbeitungsbibliothek (zB http://opencv.willowgarage.com/wiki/) die dir noch mehr Arbeit abnimmt da sie die benötigten Bildverarbeitungsmethoden bereitstellt. Wenn dir nicht mal klar ist welche das sein könnten verweise ich mal auf google und zB:
    - Bilddifferenz("Alle LEDs aus" - "Alle LEDs an") das entfernt uU große Teile des Hintergrundes (abhängig von der allg. Beleuchtungssituation, he weniger Licht die LEDs zur Gesamtszene hinzufügen desto besser wird das Differenzbild - also vorher auf gute Ausleuchtung achten)
    - Gaussfilter zum Glätten
    - Thresholding
    - Formatkonvertierung RGB -> Grau (da gibts verschiedene Methoden dies zu tun) und die Algos laufen auf Graubildern oft schneller und ähnlich gut
    - Kantendetektionsalgos (http://de.wikipedia.org/wiki/Kantendetektion) die Gradientenversionen davon könnten dir auch helfen

    Wenn du das händisch machen musst weil es Teil deines Studiums ist, lern erstmal ein wenig besser mit der Sprache umzugehen da es SO nix wird. Wenn du hier nur rumtrollst dann freu dich das du jede Menge Leute zum Antworten gebracht hast. Deine Haltung "Da kommt mein Betreuer, dem will ICH was zeigen, bastelt IHR mir was" wird dir in diesem Forum warscheinlich nur abgespacte template und abstrus komplexe STL Programmierung ausnutzende Beispiele ergeben, die ICH auf Anhieb nur zu 75% nachvollziehen kann und mir (meist) die ca. 2h Nachlesen und Nachdenken um es auf 99% zu schaffen das einfach nicht Wert ist (was meiner Bewunderung und gelegentlichen Beschäftigung mit diesen Geistigen Ergüssen keinen Abschlag tut).

    Und ich hab mein Informatik Studium schon hinter mir und ein dutzend und mehr Jahre Programmierung ebenso.



  • Danke!! In vielen punkten gib ich dir recht.

    Ich bin in der Theorie sehr sehr gut, aber nur leider mit programmierung irgendwie klappt nicht, ich habe leider 80 % mein arbeit fertig gemacht und fehlt mir leider nur der programmierungs Teil. und von daher werde leider keine zurück mehr. Natürlich kann ich schleifen,funktionen ..machen :-), es ist leider JETZT nur irgendwie dieser plan womit und wie soll ich anfangen fehlt mir noch

    Ich muss leider zu end machen, und werde ich auch machen.

    Danke nochmal für den Rat, nehmme ich auch gern.


Anmelden zum Antworten