Bilderkennung programmieren

Hallo www,

ich wuerde gerne ein Programm schreiben, das ein Bild einliest und eine besondere Farbe erkennt. Das Programm soll dann erkennen wieviel von dem Bild diese Farbe besitzt und das dann ausgeben.

Konkret geht es darum bei Kabeln erkennen zu koennen wieviel Luft im Kabelmantel eingeschlossen ist (der Mantel ist durchsichtig). Das Kabel wird fotografiert (evtl in einem bestimmten Licht) und anschliessend soll analysiert werden ob das Kabel „gut“ ist oder nicht.

Ich bin allerdings eine Niete im Programmieren und kann ansich nicht viel mehr als die Basics (C und C++). Ich wuerde mich da aber sehr gerne durchbeisen und wuerde mich sehr freuen wenn ihr mir dabei helfen koenntet ein funktionierendes Programm zu erstellen.

Mein erstes Problem besteht schon darin, was denn raus kommt, wenn ich ein Bild einlese? Und wieviel unterschied macht es jpg, gif oder bmp einzulesen? Kann man direkt von der Eingabe irgendwie auf die Pixel zugreifen und dort die Werte raussuchen die man braucht (also z.B. der Wert fuer Schwarz mit der und der Tolleranz)?

Danke schonmal fuer eure Hilfe!

Gruss,
Stahlkopf

Moien

ich wuerde gerne ein Programm schreiben, das ein Bild einliest
und eine besondere Farbe erkennt. Das Programm soll dann
erkennen wieviel von dem Bild diese Farbe besitzt und das dann
ausgeben.

Einzelne Farben sind eklig. Man muss immer einen Farbbereich nehmen. Diese Bereiche zu definieren ist dabei die Kunst.

Konkret geht es darum bei Kabeln erkennen zu koennen wieviel
Luft im Kabelmantel eingeschlossen ist (der Mantel ist
durchsichtig). Das Kabel wird fotografiert (evtl in einem
bestimmten Licht) und anschliessend soll analysiert werden ob
das Kabel „gut“ ist oder nicht.

Das gibts vorgefertigt zu kaufen, auch als All-In-One System mit Kamera und Auswertung in einem kleinen Gehäuse.

Mein erstes Problem besteht schon darin, was denn raus kommt,
wenn ich ein Bild einlese?

Man kann Libs benutzen die das Bild als ein grosses Array zurückliefern.

Alternativ kann man das Bild in ein „freunliches“ Format umwandeln und dann selbst einlesen. Das halte ich für die Anwendung für sinnvoller. Freunliche Formate sin ppm & Co.

und der Tolleranz)?

Da liegt der Hase im Pfeffer: du hast bei normalen Verarbeitungen 3 Farbwerte pro Pixel: Rot, Grün und Blau. Nun definier mal in diesem 3 dimensionalen Raum eine Toleranz die Helligkeitsunterschiede mit einschliesst. Besser ist es auch einen anderen Farbraum, also eine andere Farbdarstellung wie HSV zu konvertieren und dann die Toleranzen zu bauen. Der Raum trennt nämlich Helligkeit und Farbe zumindest ansatzweise.

cu

ich wuerde gerne ein Programm schreiben, das ein Bild einliest
und eine besondere Farbe erkennt. Das Programm soll dann
erkennen wieviel von dem Bild diese Farbe besitzt und das dann
ausgeben.

http://www.imagemagick.org/Usage/files/#histogram