2006-02-02

OpenCV unter Mac OS X

Vor einer Weile habe ich es geschafft, die „Open Computer Vision“-Bibliothek von Intel unter Mac OS X zu kompilieren. In diesem Artikel beschreibe ich, wie das funktioniert. Ich führe einige Voraussetzungen auf und erkläre dann, wie ihr die OpenCV kompilieren und installieren sowie ein Beispielprogramm ausführen könnt. Ich beschreibe Eigenheiten bei der Nutzung von OpenCV auf dem Mac, soweit ich auf welche gestoßen bin. Ich gehe bei der Beschreibung der Installation davon aus, dass ihr euch mit der Benutzung der Kommandozeile im Terminal auskennt.

Ich freue mich über alle Rückmeldungen, Korrekturen oder Hilfegesuche. Schickt mir eine E-Mail, besonders wenn ihr eine Antwort erwartet, oder benutzt den Kommentar-Link unten rechts am Ende des Artikels.

Aktualisierungen

2006-02-02
Erste deutschsprachige Fassung

Voraussetzungen

Auf meinem Mac läuft zurzeit Mac OS X „Tiger“ 10.4.4 mit XCode 2.2. Die Anweisungen gelten aber auch für Mac OS X „Panther“ mit XCode 1.5. Ich habe die X11-Version von Apple installiert (X11User.pkg auf der Betriebssystem-CD/DVD) sowie das X11-SDK (X11SDK.pkg, liegt XCode bei).

OpenCV benötigt einige Werkzeuge und Bibliotheken. Es ist das Einfachste, sie mit Hilfe von Fink zu installieren; jedenfalls benutze ich das (binäre Distribution, Version 0.7.2 unter Panther, 0.8.0 unter Tiger). Ihr müsst die folgenden Pakete installieren (deren Abhängigkeiten Fink automatisch handhabt):

Außerdem braucht ihr FFmpeg, das nicht in Fink enthalten ist (jedenfalls nicht in der stabilen Version). Ihr könnt entweder versuchen, die Version aus dem instabilen Zweig von Fink zu verwenden (habe ich nicht probiert), oder diese Anweisungen befolgen:

  1. Ladet den Quellcode der Version 0.4.9-pre1 von FFmpeg (1.5 MiB) herunter. Ich benutze diese Version, weil ich keine Zeit habe, der CVS-Version zu folgen, in der sich die API so verändern könnte, dass OpenCV nicht mehr funktioniert.
  2. Entpackt das Archive, wechselt auf der Kommandozeile zum Quellverzeichnis und wendet meinen kleinen Patch an (1 KiB, MD5-Prüfsumme: 41b2d644b9d82f38d3a75c88d9054e4b bei der komprimierten Datei, 4be5f172eefd5aa1945a2c35d3cda31f bei der unkomprimierten Datei – ihr müsst die Datei eventuell selber entpacken, wenn der Browser das nicht schon tut):
    patch -p1 < /Pfad/zu/ffmpeg-0.4.9-pre1-macosx.patch
    Ich habe diesen Patch auf Basis des Fink-Patches für 0.4.8 entwickelt; er ist aber weniger umfangreich.
  3. Konfiguriert FFmpeg mit folgendem Befehl:
    ./configure --cc=gcc-3.3 --enable-shared --enable-pthreads --disable-vhook
  4. Kompiliert und installiert es (in /usr/local):
    make
    sudo make install

Dadurch erhaltet ihr eine FFmpeg-Version ohne optionale Fähigkeiten oder Codecs, aber bisher hat das für meine Zwecke ausgereicht.

Ich benutze übrigens keine Kamera und habe keine Ahnung, ob und wie man unter Mac OS X per OpenCV darauf zugreifen kann.

Installation

  1. Ladet den Linux-Quellcode von OpenCV 0.9.7 (10 MiB) herunter, entpackt ihn irgendwohin und wechselt auf der Kommandozeile ins Quellverzeichnis.
  2. Konfiguriert den Quellcode wie folgt:
    ./configure --with-apps CPPFLAGS="-I/sw/include -I/usr/include/malloc" LDFLAGS=-L/sw/lib CC=gcc-3.3 CXX=g++-3.3
  3. Kompiliert den Quellcode und installiert ihn in /usr/local:
    make
    sudo make install
  4. Wenn ihr die mitgelieferten Testprogramme laufen lassen wollt, kompiliert sie mit:
    make check

Schnellstart

Um gleich loszulegen, kompiliert und startet ein Beispielprogramm im Terminal:

  1. Kopiert die Dateien morphology.c und baboon.jpg vom Beispielverzeichnis in euer Heimatverzeichnis:
    cd ~
    cp /usr/local/share/opencv/samples/c/{morphology.c,baboon.jpg} .
  2. Übersetzt den Quellcode:
    g++ -bind_at_load `pkg-config --cflags opencv` morphology.c -o morphology `pkg-config --libs opencv`
  3. Startet X11, wechselt zurück zum Terminal, startet dann das Beispielprogramm und spielt damit:
    ./morphology
  4. Lest zum Einstieg in die OpenCV-Programmierung die (englischsprachige) Dokumentation, angefangen mit der Datei /usr/local/share/opencv/doc/index.htm.

Eigenheiten

Kommentare

Thomas Hrabe

Ich mach für meine Uni was mit OpenCV und werd mal deine Anleitung für die Integration in meinen Mac versuchen. Danke schonmal im Vorraus!

Thomas

2006-03-02 11:38

Trackbacks are closed for this story.

Comments are closed for this story.