プロジェクトで C 言語と OpenCV ライブラリを使用してプログラムを作成する必要があるため、このサイトの MACOSX のインストールに関するガイドに従いました: OpenCV インストール
インストールには Mac Port を使用しました。
私は Eclipse を使用してプログラムします。このプログラムをコンパイルしようとすると、ビルド エラーが発生し、CalcOpticalFlowFarneback() 関数に依存していると思います。
これはコードです:
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include <math.h>
#include <time.h>
int main(){
CvCapture* webcam = cvCreateCameraCapture(0);
IplImage*prev=NULL;
IplImage*next=NULL;
char scelta;
/*INIZIALIZZAZIONE FUNZIONE RAND*/
srand(time(NULL));
double pyr_scale=0.5;
int levels=1;
int winsize=3;
int iterations=10;
int poly_n=5;
double poly_sigma=1.1;
int flags=0;
sleep(2);
if (!webcam){
/* Exit with an error */
puts("Attenzione! si è verificato un Errore in Fase di Attivazione della WebCam. Preghiamo di Riprovare!");
return -1;
}
while (1) {
prev = cvQueryFrame(webcam);//primi 8-bit single-channel immagine in ingresso
next = cvQueryFrame(webcam);// immagine secondo ingresso della stessa dimensione e lo stesso tipo prev.
CvSize isize = cvSize(80,80);
IplImage *flow = cvCreateImage(isize, IPL_DEPTH_32F, 1); //immagine computerizzata che ha le stesse dimensioni e tipo CV_32FC2 prev
if ((prev) && (next)) {
cvCalcOpticalFlowFarneback(prev,next,flow,pyr_scale,levels,winsize,iterations,poly_n,poly_sigma,flags);
scelta=cvWaitKey(20);
if((char)scelta == 27){
break;
}
}
}
cvDestroyWindow("VIDEO SORVEGLIANZA");
cvReleaseCapture(&webcam);
return 0;
}
これはエラーログです:
Undefined symbols for architecture x86_64: "_cvCalcOpticalFlowFarneback", referenced from:_main in main.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [cattura_foto] Error 1
そして、cvCalcOpticalFlowFarneback 関数を削除しても問題がないことを指定したいと思います。
ありがとうございました、
manu.web