OpenCV啟動攝像頭
阿新 • • 發佈:2019-01-23
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
using namespace cv;
int main()
{
VideoCapture cap(0);
if(!cap.isOpened())
{
return -1;
}
Mat frame;
Mat edges;
bool stop = false;
while (!stop)
{
cap>>frame;
cvtColor(frame, edges, CV_BGR2GRAY);
GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
Canny(edges, edges, 0, 30, 3);
imshow("當前視訊",edges);
if(waitKey(30) >=0)
stop = true;
}
return 0;
}
對程式碼的幾點說明:
1. VideoCapture類
2. isOpened函式用來檢測VideoCapture類是否開啟成功。
3. C++版本的OpenCV有一個明顯的好處,就是不需要釋放操作(不論是視訊還是圖片),VideoCapture類的解構函式會自動幫你完成。
下面這段程式是開啟攝像頭並顯示攝像頭的。
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
int main( int argc, char** argv )
{
//宣告IplImage指標
IplImage* pFrame = NULL;
//獲取攝像頭
CvCapture* pCapture = cvCreateCameraCapture(-1);
//建立視窗
cvNamedWindow("video", 1);
//顯示視屏
while(1)
{
pFrame=cvQueryFrame( pCapture );
if(!pFrame)break;
cvShowImage("video",pFrame);
char c=cvWaitKey(33);//讓每一幀暫停33ms
if(c==27)break; //ESC,ASCⅡ碼27回車,ASCⅡ碼13換行(Ctrl + Enter),ASCⅡ碼10空格,ASCⅡ碼32
}
cvReleaseCapture(&pCapture);
cvDestroyWindow("video");
}
在Macbook pro 上,上面兩段程式碼我都可以跑通,都可以調取自帶的攝像頭。
攝像頭可以在系統資訊—>相機 檢視:
FaceTime 高清相機(內建):
型號 ID: UVC Camera VendorID_1452 ProductID_34057
唯一 ID: 0x1a11000005ac8509
UVC,全稱為:USB video class 或USB video device class。是Microsoft與另外幾家裝置廠商聯合推出的為USB視訊捕獲裝置定義的協議標準,目前已成為USB org標準之一。因此就相當於呼叫USB攝像頭了。