OpenCV Farberkennung

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    ich suche nach einer Möglichkeit mit Python und OpenCV die Farben eines von einer Webcam aufgezeichneten Bildes zu erkennen.
    Ich möchte das der RasPi das Bild selber Bearbeiten kann.
    Er soll dem letzte der drei Bilder die Farbe entnehmen, die mann dann mit einer if Abfrage verwenden kann.
    OpenCV & numpy auf dem Pi drauf.
    Danke im voraus

  • Hallo,

    ich bin bereits sehr tief in opencv, verstehe aber Dein Problem nicht.

    Du schreibst einmal von Farben, dann von Farbe.

    Wie sollen denn die "FARBEN" eines Bildes dargestellt werden?

    Ich kann das schon, nur wirst Du damit nichts anfangen önnen.

    VM


  • Na ich weiss nicht so recht................???

    Teste mal das Programm mit dem Bild im Anhang.

    Was will uns das sagen?

    Wie erkenne ich wann mein DHL Mann sein Auto auf meiner Strasse geparkt hat?

    Das sind die wirklichen Probleme im Leben..................

    Aber ich bin dran

    Ich erkenne bereits Gesichter, Personen, so ein Auto ist doch noch größer.......................


    VM

  • Danke für die Antwort. Gestern kam mein mearm.com. Ich möchte einfach nur dass er ein Objeckt vor die Webcam hält und das dann in den Behälter mit der richtigen Farbe wirft. Also eine Farbsortiermaschiene.

  • OK, jetzt macht das auch alles Sinn.

    Lass mal den Thread hier offen und stell mal ein / zwei Fotos von Deinem Wunderwerk der Technik hier hin.

    Ich kümmer mich gerne mal drum, bleiben Fragen:

    Wie gross sind die Dinge?

    Welche Farben kommen dabei vor ( Musterbilder ).

    Mit PI-Kamera oder USB Kamera.

    Ich würde Python vorschlagen, alles was mit OpenCV zu tun hat ist eine einzige Katastrophe mit C-Files.

    Willst Du evtl. auch mal Objekte erkennen? Da dokter ich grade dran rum...................

    VM

  • Danke für die superschnelle Antwort. Mein wunderwerk der Technik befindet sich noch in einem Brief der Royial Mail.
    Ich arbeite sowieso nur mit Python und ein bisschen Java also wollte ich eigentlich auch Python verwenden.
    Meine Pi-Camera ist leider zurzeit verbaut, sodass ich eh eine Webcam verwenden möchte.
    Mit der Objeckterkennung hatte ich bei anderen Projeckten schon gearbeitet, bin aber immen am OpenGL gescheitert währe super wenn du mir da helfen könntest. Die Dinge sind erstmal normale Legosteine. Später möchte ich mit einem Elektromagnet Wascheklammern nach Farbe sortieren. Die sache mit der Objeckterkennung musst du mir nocheinmal erklären. Ist das so dass man ein Foto des Objeckts hinterlegt(Währe super) oder wie lauft das?

    LG aus Berlin

  • Eines nach dem Anderen.

    Bleiben wir erst einmal bei Lego.
    Ich schaue mir da mal einige Fotos an. Welchen Hintergrund hast Du vorgesehen?

    Das Beste wäre wenn Du mir per PM Deine email Adresse zukommen lässt.
    Dann könnte ich einige Fotos bekommen wie die Steine aussehen wenn sie von der Kamera erfasst werden.

    Und sei es noch so profan, wenn ich etwas mache dann richtig und professionell.

    Zur genauen Objekterkennung hinterlegt man passende Referenzen, sonst macht das ja keinen Sinn.

    Der Weg ist ja ähnlich, man braucht halt nur genug gute Referenzen und genug Zeit:-).

    Einen Eindruck kann man hier bekommen:


    http://coding-robin.de/2013/07/22/tra…classifier.html

    Warum nicht Bananen erkennen?.................................

    Ich muss los, zur Autobahn, spielen...............

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    VM

  • Hallo,
    der untergrund ist weiß.
    Das Lego sind einfarbige Legotürmchen.
    ich habe auchschon ein bisschen gegooglt und ich habe einiges gefunden.
    Aber das was ich gefunden habe ist entweder nicht geeignet oder es lauft auf dem RPi nicht.
    Die Webcamb sieht nur einen einfarbigen Legostein auf einem weissen Untergrund.

  • Also ich habe gute Sachen in C++.

    Aber da Du ja Python möchtest, kann ich auch verstehen, das ist auch allemal schnell genug.

    Grundsätzlich läuft es so:

    Du musst das System trainieren. Danach ist es in der Lage Objekte zu erkennen.
    Schau mal das hier in Ruhe an. Die Mutter aller Dinge ist also ein haarcacasdes XML File. Damit kannst Du jedes Python Programm zur Gesichtserkennung umfunktionieren.

    http://www.pyimagesearch.com/2014/11/10/his…ject-detection/

    Ich habe gerade eine Gesichtserkennung gemacht die sogar einigermassen funktioniert.
    Nur, dabei spielt Farbe keine Rolle, nur Umrisse oder so. Das Ding ist aber sehr einfach, ich habe keine 1/2 Stunde gebraucht um es ans Laufen zu bekommen. Wäre ein guter Einstieg.


    https://github.com/bytefish/facerec

    Nicht nervös werden, weiter blättern, gegen Ende kommt eine primal Erklärung wie das zu benutzen ist.

    ich greife hier die Ergebnisse ab, wer erkannt wird wird begrüßt:

    Code
    cv2.rectangle(imgout, (x0,y0),(x1,y1),(0,255,0),2)
                   # Draw the predicted name (folder name...):
                   draw_str(imgout, (x0-20,y0-20), self.model.subject_names[prediction])
                   if self.model.subject_names[prediction] == "klaus":
     subprocess.call("./rede.sh 'hallo_klaus' ",shell=True)
                   elif self.model.subject_names[prediction] == "danni":
     subprocess.call("./rede.sh 'hallo_Daniela'",shell=True)
           elif self.model.subject_names[prediction] == "andre":
     subprocess.call("./rede.sh 'hallo_Andre'",shell=True)

    Und hier die C-Dinge, funktionieren super, man muss nur noch die Ergebnisse abgreifen, sollte aber machbar sein.
    das C-Programm ruft eine anderes Programm mit Parameterübergabe auf.

    https://programmaticponderings.wordpress.com/2013/02/09/ope…h-raspberry-pi/

    https://robotics.eecs.wsu.edu/?p=408

    Also ich würde zunächst einmal eine umfangreiche Sammlung an Fotos anlegen. Lego in allen Lagen:-)

    VM

  • Hallo,
    danke für die Antwort aber ich bin letztens auf MagPi 28, 29 gestoßen , wo das erklärt wird. habe opencv zwar installiert, mehrere pis getestet(unterschiedliche instalationen) aber es kommt immer zum gleichen Fehler: er findet die Module SURF & SHIFT nicht kennt jemand das Problem oder hat oder kennt jemand ein pi Image wo opencv 2.4.9 installiert ist zum Download

  • Kannst du mal bitte konkrete Fehlermeldungen und Code posten? Irgendwelche Module die irgendwie nicht existieren ist nicht nachvollziehbar.

  • Ich kann dir nur empfehlen Ubuntu Mate zu installieren, dann ist es mit einem simplen "apt-get install python-opencv" getan.

  • Fure nur 40 Euro laesst sich das aendern. Im Ernst, der PI2 ist *deutlich* leistungsfaehiger, und OpenCV ist *sehr* Rechenleistungshungrig. Die Investition ist sehr lohnenswert.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!