J'utilise Ubuntu 16.04 et la version étudiant de MatLAB R2016b, OpenCV 3.1 installée en suivant ce tutoriel .
J'ai téléchargé le code source de l'algorithme de suivi OpenTLD et j'essaie d'exécuter le fichier compile.m. Je rencontre les erreurs suivantes.
En remarque, j'ai implémenté les modifications qui résolvent le problème lors de la recherche du fichier d'en-tête cv.h
Les définitions étaient
(#include "cv.h")
(#include "highgui.h")
et ont été changés en
(#include <opencv/cv.h>)
L'erreur que je reçois lors de l'exécution de compile.m
Error using mex
/tmp/mex_36621193718999_4249/lk.o: In function `normCrossCorrelation(_IplImage*, _IplImage*, CvPoint2D32f*, CvPoint2D32f*,
int, char*, float*, int, int)':
lk.cpp:(.text+0x1a0): undefined reference to `cvCreateImage'
lk.cpp:(.text+0x1b9): undefined reference to `cvCreateImage'
lk.cpp:(.text+0x1d6): undefined reference to `cvCreateImage'
lk.cpp:(.text+0x214): undefined reference to `cvGetRectSubPix'
lk.cpp:(.text+0x227): undefined reference to `cvGetRectSubPix'
lk.cpp:(.text+0x23b): undefined reference to `cvMatchTemplate'
lk.cpp:(.text+0x274): undefined reference to `cvReleaseImage'
lk.cpp:(.text+0x27d): undefined reference to `cvReleaseImage'
lk.cpp:(.text+0x286): undefined reference to `cvReleaseImage'
/tmp/mex_36621193718999_4249/lk.o: In function `mexFunction':
lk.cpp:(.text+0x323): undefined reference to `cvReleaseImage'
lk.cpp:(.text+0x341): undefined reference to `cvReleaseImage'
lk.cpp:(.text+0x438): undefined reference to `cvCreateImage'
lk.cpp:(.text+0x455): undefined reference to `cvCreateImage'
lk.cpp:(.text+0x4be): undefined reference to `cvCreateImage'
lk.cpp:(.text+0x4dc): undefined reference to `cvCreateImage'
lk.cpp:(.text+0x553): undefined reference to `cvAlloc'
lk.cpp:(.text+0x565): undefined reference to `cvAlloc'
lk.cpp:(.text+0x578): undefined reference to `cvAlloc'
lk.cpp:(.text+0x613): undefined reference to `cvAlloc'
lk.cpp:(.text+0x61e): undefined reference to `cvAlloc'
/tmp/mex_36621193718999_4249/lk.o:lk.cpp:(.text+0x626): more undefined references to `cvAlloc' follow
/tmp/mex_36621193718999_4249/lk.o: In function `mexFunction':
lk.cpp:(.text+0x6c1): undefined reference to `cvCalcOpticalFlowPyrLK'
lk.cpp:(.text+0x73e): undefined reference to `cvCalcOpticalFlowPyrLK'
collect2: error: ld returned 1 exit status
Error in compile (line 77)
eval(['mex lk.cpp -O' include lib]);
libopencv-dev
du référentielRéponses:
Il semble que le fourni
compile.m
soit câblé pour une version (et un emplacement) particulière d'OpenCV:J'ai pu le compiler et le lier sur Ubuntu 16.04 64 bits avec la version
libopencv-dev
2.4.9 standard du référentiel en apportant les modifications suivantes:NB Je n'ai pas essayé de tester les
mexa64
objets résultantsla source