0
我正試圖編寫一個程序,打印出從網絡攝像頭捕獲的兩幀(間隔30幀)之間的標準,但cvNorm總是返回0.我做錯了什麼?代碼如下:cvNorm()在比較攝像頭幀時總是返回0
int main(int argc, char **argv)
{
CvCapture *capture = 0;
IplImage *frame = 0;
int key = 0;
/* initialize camera */
capture = cvCaptureFromCAM(0);
/* always check */
if (!capture) {
fprintf(stderr, "Cannot open initialize webcam!\n");
return 1;
}
/* create a window for the video */
cvNamedWindow("result", CV_WINDOW_AUTOSIZE);
IplImage *image;
IplImage pastImage;
for(int i = 0; key != 'q'; i++) {
image = cvQueryFrame(capture);
這裏就是檢查發生:
if(!(i %30)){
if(i){
cout<<cvNorm(&pastImage,image)<<endl;
}
memcpy(&pastImage,image, sizeof(IplImage));
}
frame = image;
/* always check */
if(!frame) break;
/* display current frame */
cvShowImage("result", frame);
/* exit if user press 'q' */
key = cvWaitKey(1);
}
/* free memory */
cvDestroyWindow("result");
cvReleaseCapture(&capture);
return 0;
}
謝謝!這是問題 – jzepeda 2012-02-06 20:04:16
鏈接不起作用。它相當於加載一些隨機頁面來清理操作系統。 – 2016-02-10 09:28:37