OpenCV入門學習之讀取usb攝像頭影象,實時顯示
阿新 • • 發佈:2019-01-17
首先,新建一個.cpp的源程式檔案,例如,
gedit test.cpp
在該檔案中新增以下程式:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main(int argc, char** argv) {
cvNamedWindow("視訊");
CvCapture* capture = cvCreateCameraCapture(1);
IplImage* frame;
while(1) {
frame = cvQueryFrame(capture);
if(!frame) break;
cvShowImage("視訊", frame);
char c = cvWaitKey(50);
if(c==27) break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("視訊");
return 0;
}
儲存退出。
編譯連結生成可執行檔案。 g++ test.cpp -o test -I /usr/local/include/opencv -I /usr/local/include/opencv2 -L /usr/local/lib/*.so
插入攝像頭,執行程式
./test
大功告成!
cvCreateCameraCapture(),初始化從攝像頭中獲取視訊
CvCapture* cvCreateCameraCapture( int index );
如果只有一個攝像機時,引數值取0。當引數被設定為-1時,OpenCV會開啟一個視窗讓使用者選擇需要使用的攝像機。
cvQueryFrame()從攝像頭或者檔案中抓取一幀,然後解壓並返回這一幀。返回的影象不可以被使用者釋放或者修改。
IplImage* cvQueryFrame( CvCapture* capture );
cvShowImage(),用來在指定視窗中顯示影象。
void cvShowImage( const char* name, const CvArr* image );