Webcam DLL und Tracking

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Ohne mir die DLL angeschaut zu haben, gehe ich davon aus, dass dir ein Bitmap oder so zur Verfügung gestellt wird, das in deine View gezeichnet wird.

      Das Problem:
      Wenn du Bewegungen erkennen willst, brauchst du draw_getpixel. Das ist recht langsam, da du eine gewisse Fläche abdecken musst und die Funktion entsprechend oft aufrufen musst (32*32 => 1024. Selbst wenn du nur alle 4 Pixel abfragst, kannst du damit nur 128*128 abdecken). Probier alleine das mal aus und schau, auf welche FPS du noch kommst.

      Nun hast du die Werte aber nur ausgelesen und vielleicht noch in einem Grid oder Array gespeichert. Jetzt musst du die Daten noch auswerten.
      Dafür wiederum wirst du die RGB-Werte höchstwahrscheinlich in YUV umwandeln müssen, da letztere sich, rate ich, besser als Grundlage eignen (siehe Wikipedia zu YUV).

      Dann kommt schließlich nich die Auswertung, die du bei YUV evtl. auf den Helligkeitskanal reduzieren kannst. Immerhin wieder etwas gespart.


      Nichtsdestotrotz haben wir mit meinen Beispielwerten jetzt folgende Aufrufe für ein 128*128-Bild:
      - 1024 * draw_getpixel
      - 1024 * RGB -> YUV
      - Vergleich zur Matrix aus dem letzten Step (je nach Rangehensweise im Schnitt 512 Abfragen zur Ermittlung der Position eines einfachen Pointers)

      Das macht in der Summe über 2500 Funktionsaufrufe bzw. Operationen pro Step. Vielleicht ist mein Ansatz nicht gut genug, aber ich sehe nicht, wie man da noch viel sparen kann.


      Wenn es also wirklich sein muss, wirst du das wohl auch alles in einer DLL machen müssen. Da gehts um einiges schneller.
    • Es gibt einen Wrapper der berühmten OpenCV libary, mit der ich selber schon des öfteren gearbeitet habe. Mit dem Wrapper für den GM kenne ich mich nicht so gut aus, weiß aber, dass er so gut wie alle Funktionen der OpenCV lib auf den GM übertragt, und das sind sehr viele. Object detection, motion tracking und wasweißichnichtalles. Nun, alles was zur Analyse von Bild und Film relevant ist halt. Visual libary, nennt sich das gute stück, und ist btw ein Nachfolger von MasterXYs Geschichte. Ist allerdings recht buggy, und erfordert ein bisschen Fingerspitzengefühl, kann ich vernehmen.

      Wenn dir das nicht reicht, kannst du dir ja die selbige OpenCV lib holen, und anfangen damit zu basteln. Gibts für viele Sprachen, Umgebungen und Plattformen. Erfordert bloß gewisse Kenntnisse außerhalb des GMs :P

      MfG SDX