Programmieren in C++ und mit MRAA
Um es vorwegzunehmen: Die Programmierung für den Edison ist tatsächlich einfacher als beim Galileo. Das zeigt sich schon am Code-Umfang. Der neu geschriebene Quellcode ist deutlich kürzer als der des Laika-Projektes auf dem Galileo und auch weniger erklärungsbedürftig. Würden wir das Laika-Projekt mit MRAA auf dem Edison umsetzen, würde sich der Quellcode vermutlich von rund 300 Zeilen auf gut 120 Zeilen reduzieren.
Der Quellcode unseres Mona-Lisa-Programms kann heruntergeladen werden.
Die main()-Funktion des Programms ist recht übersichtlich und besteht aus vier Teilen: der Initialisierung des GPIO-Pins, mit dem der Servo angesteuert wird, und dem Laden der Gesichtserkennungsdaten. Am Ende starten wir einen zusätzlichen Thread, in dem die eigentliche Gesichtserkennung durchgeführt wird und schließlich lassen wir OpenCV die Kamerabilder holen.
String cascadefile = "haarcascade_frontalface_alt2.xml"; VideoCapture capture; CascadeClassifier face_cascade; mraa::Gpio* gpio; int main(int argc, const char** argv) { pthread_t thread; gpio = new mraa::Gpio(4); gpio->dir(mraa::DIR_OUT); gpio->mode(mraa::MODE_STRONG); if(!(face_cascade.load(filename))) { return 1; } capture.open(0); if(!capture.isOpened()) { return 1; } int rc = pthread_create(&thread, NULL, faceThread, NULL); while(1) { capture.grab(); } return 0; }
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Augen gerade aus! Oder nach links oder rechts | OpenCV übernimmt die Gesichtserkennung |
Na ja - das Edison/Arduino Gespann ist nun so viel kleiner nicht. Das reine Edison Modul...
und vom USB-Stick? Von SD wäre natürlich genial und vielleicht besser Intel hier ja noch...
Irgendwie ist die Betonung des Sprechers im Video ... hmm, naja, seltsam. *Sehr* seltsam...