我開發H/W環境覆盆子PI2 & VX-1000攝像頭 我開發S/W環境是Arch Linux的& C++ & OpenCV的不使用的OpenCV&打開相機電源並Arch Linux的
我能流使用mjpg-streamer 在網頁上使用此命令mjpg_streamer -i "./input_uvc.so -d /dev/video0 -n -f 30 -r 320x240" -o "./output_http.so -n -w ./www"
此運行良好。 (打開相機(意味着打開相機上的LED)) 但是,當我執行由opencv代碼製作的程序時,它不打開相機(不開啓led)並且功能cvCaptureFromCAM()
返回NULL
。
我的源代碼是
#include <iostream>
#include <time.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace cv;
using namespace std;
int main(int argc,char** argv)
{
char c;
IplImage* frame;
CvCapture* capture;
capture = cvCaptureFromCAM(-1);
if(capture == NULL)
cout << "Strange!!" << endl;
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH , 320);
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT , 240);
bool bLoop = true;
cout << "Start streaming" << endl;
while (bLoop){
cvGrabFrame(capture); // Get a frame from cam
frame = cvRetrieveFrame(capture, 0); // get a frame from capture
cvSaveImage("save.jpg", frame);
cvWaitKey(33); // wait key input for 33ms
}
cvReleaseCapture(&capture);
cvDestroyAllWindows();
return 0;
}
請使用opencv的C++ api,而不是已棄用的c-api。 – berak