smart developer Ein Code für alle (Vorschau)
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Entwicklung<br />
Bada: Face Recognition App<br />
Osp::Ui::Form abgeleitete Klasse Form1, die<br />
die Ergebnisse anzeigt. Beide Klassen kommunizieren<br />
über einen Listener mit dem<br />
Namen RecognizerThreadListener. <strong>Ein</strong>e<br />
Hilfsklasse mit dem Namen MyFaceInfo enthält<br />
Zeiger auf einen Dateinamen und auf die<br />
Informationen eines darin gefundenen Gesichts<br />
in der entsprechenden Datei. Mithilfe<br />
dieser Klasse können Sie später die Ergebnisse<br />
wieder einer Datei zuordnen.<br />
Die App durchforstet das Dateisystem<br />
eines Gerätes oder des Simulators nach Bilddateien,<br />
sucht darin Gesichter und vergleicht<br />
deren Ähnlichkeit miteinander. Der Beispielcode<br />
wurde mit dem bada SDK 1.2.1 implementiert<br />
und sowohl im Simulator als auch<br />
auf einem Wave S8500 getestet. Um die App<br />
im Simulator testen zu können, müssen Sie<br />
Bilder in das Dateisystem des Simulators<br />
laden. Kopieren Sie die Bilder in den Pfad<br />
/bada//<br />
Model//Simulator/FS/Win32FS/<br />
Media/Images und passen Sie gegebenenfalls<br />
den Pfad an, der in RecognizerThread.h als<br />
Define IMAGE_DIRECTORY_PATH definiert<br />
wurde. Auf dem Gerät werden Bilder von<br />
Bada in den Ordnern /Media/Images/ und /<br />
Storage/Media/Images/ gespeichert. Verändern<br />
Sie den Define nicht, dann erwartet die<br />
App die zu analysierenden Bilder im Ordner<br />
/Media/Images/Fotos0001/.<br />
Bevor Sie mit der Implementierung der<br />
App beginnen, müssen Sie auf dem Bada<br />
Developer Portal [2] ein Manifest erstellen.<br />
Wählen Sie bei der Erstellung des Manifestes<br />
das Privileg IMAGE aus. Damit erlauben Sie<br />
der App, Bilder decodieren zu dürfen. Öffnen<br />
Sie das Bada-SDK und erstellen Sie mit dem<br />
heruntergeladenen Manifest ein neues Projekt.<br />
Um den <strong>Code</strong> so einfach wie möglich zu<br />
halten, legt die App wenig Wert auf einfache<br />
Bedienung oder ein besonders hübsches Aussehen.<br />
Interessante Informationen über die<br />
Gesichtserkennung gibt die App über<br />
AppLogDebug() aus. Sie lassen sich so in der<br />
Debug Perspective von Eclipse im Window<br />
Output betrachten.<br />
<strong>Code</strong> schreiben<br />
Beginnen Sie mit der Implementierung der<br />
Klasse RecognizerThread. Sie führt die Gesichtserkennung<br />
aus und kommuniziert die<br />
Ergebnisse über einen Listener zu der Klasse,<br />
die die UI implementiert. Konstruktor und<br />
Destruktor der Klasse bleiben leer. In der<br />
Init()-Methode zur Initialisierung einer Instanz<br />
der Klasse rufen Sie Construct() auf die<br />
Instanz auf und definieren den Thread als<br />
Worker-Thread. Implementieren Sie die Methode<br />
SetListener(), mit der Sie später den<br />
Listener der Instanz setzen, über den die Ereignisse<br />
der Gesichtserkennung kommuniziert<br />
werden.<br />
<strong>Ein</strong> Thread muss drei Methoden implementieren:<br />
OnStart() ruft Bada auf, wenn<br />
der Thread gestartet wird, OnStop(), wenn<br />
der Thread terminiert, und in Run() verrichtet<br />
ein Worker-Thread seine Arbeit. Listing 1<br />
zeigt die vollständige Definition von RecognizerThread.<br />
Die Arbeit des Threads ist im F<strong>alle</strong> des Beispielcodes<br />
in vier Phasen aufgeteilt. In der<br />
ersten Phase wird der FaceRecognizer analysiert<br />
und konfiguriert. In der zweiten Phase<br />
wird der Ordner /Media/Images/Fotos0001/<br />
nach Bilddateien durchsucht. In der dritten<br />
Abb. 1: Im ersten Schritt durchsucht<br />
die App sämtliche Bilder eines gegebenen<br />
Verzeichnisses und sucht<br />
darin nach Gesichtern.<br />
Zuverlässiges Wissen <strong>für</strong> Entwickler<br />
openbook<br />
online!<br />
Juli 2011<br />
im Handel!<br />
Java ist auch eine Insel<br />
Android 3<br />
Silverlight 4<br />
Das Praxisbuch ActionScript 3<br />
1.480 S., 9. Auflage 2011, mit DVD, 49,90 €<br />
www.GalileoComputing.de/2254<br />
550 S., 2011, mit DVD, 39,90 €<br />
www.GalileoComputing.de/2516<br />
1.178 S., 2010, mit DVD, 49,90 €<br />
www.GalileoComputing.de/2126<br />
702 S., 2010, mit DVD, 39,90 €<br />
www.GalileoDesign.de/2336<br />
» www.facebook.com/GalileoPressVerlag<br />
» www.twitter.com/Galileo_Press<br />
www.GalileoComputing.de/Programmierung