2010-08-12 4 views
4

Plate-forme: amd_64 Système d'exploitation: Ubuntu 8.10FlyCapture2 et OpenCV, CMake construire question

Problème: La version actuelle de OpenCV (2.1 au moment de l'écriture) et libdc1394 n'a pas d'interface avec le nouveau USB- interface PointGrey Haute Résolution FireFlyMV Caméra couleur.

Est-ce que quelqu'un a déjà cette caméra avec OpenCV sous Ubuntu?

Actuellement, je travaille sur l'écriture de ma propre capture d'image à l'aide du SDK FlyCapture2 de PointGrey, qui fonctionne bien avec l'appareil photo. Je voudrais interfacer cela avec OpenCV, en convertissant chaque image que je capture en un objet IplImage. Quand j'écris des programmes OpenCV, j'utilise CMake. L'exemple de code pour le SDK FlyCapture2 utilise des fichiers makefile assez simples. Est-ce que quelqu'un sait comment je peux prendre l'information du simple makefile de FlyCapture2 afin que je puisse inclure les lignes appropriées dans CMakeLists.txt pour ma routine de construction de CMake?

+1

Je n'ai pas encore trouvé la cause de l'erreur de la caméra, car je n'ai pas le temps de décrire et d'étudier l'erreur. Je suis passé à Windows, où les caméras PointGrey fonctionnent beaucoup mieux. J'ai cependant compris comment incorporer les bibliothèques FlyCapture et OpenCV dans le même projet en utilisant CMake. En utilisant un fichier CMake qui fonctionne déjà avec OpenCV, tout ce qui doit être ajouté est les lignes suivantes, en supposant que flycapture est installé dans/usr, et avec le nom de projet [projectname]: INCLUDE_DIRECTORIES ("/ usr/include/flycapture") TARGET_LINK_LIBRARIES ([projetname] flycapture) – agodbehere

+0

Vous avez répondu à votre propre question en termes de la balise "cmake" ici ... Avez-vous une réponse pour le reste? Si ce n'est pas le cas, supprimez peut-être la balise CMake, de sorte qu'elle n'apparaisse pas sous les questions cmake "sans réponse" ... – DLRdave

+0

Merci pour la suggestion, DLRdave, j'ai supprimé la balise cmake. C'est vraiment juste une question OpenCV. – agodbehere

Répondre

1

Pas une réponse simple (désolé) - mais.

En règle générale, vous ne souhaitez pas utiliser cvCaptureCam() pour les caméras hautes performances au-delà des tests initiaux qu'elles fonctionnent. Même pour les interfaces standard comme FireWire Il est très limité dans les fonctionnalités de la caméra qu'il peut contrôler, il ne gère pas bien le filetage et les performances sont médiocres - en particulier à des débits de données élevés. Le moyen le plus courant est de contrôler la caméra avec le SDK et les trames de sortie propres au fabricant sous une forme (cv :: mat/iplimage) que peut traiter openCV. Tous les types d'images openCV sont très flexibles dans le fait de pouvoir partager des données avec l'API de la caméra et de spécifier le remplissage/l'entrelacement des lignes, vous devriez donc être capable de le concevoir pour qu'il n'y ait pas de copie inutile.

+0

Merci, Martin. C'est exactement ce que j'ai fini par faire, mais j'apprécie votre explication. – agodbehere