如何使用 Opencv 打開攝像頭獲取圖像信息?
Flow
- 遍歷攝像頭設備。
- 根據 VID 和 PID 打開特定的設備。
- 使用 Directshow 設置攝像頭相關參數(曝光度、分辨率、亮度、飽和度、對比度等)。
- 使用
capture.read(camera) 獲取圖像。
- 圖像處理(濾波、邊緣檢測、二值化等)。
- 圖像顯示
cv::imshow()。
Code
#include "opencv2/opencv.hpp"
using namespace cv;
void OpencvCamera()
{
//獲取視頻流
namedWindow("Win7x64",WINDOW_NORMAL);
VideoCapture capture;
Mat camera;
//采用 Directshow 的方式打開第一個攝像頭設備。
capture.open(0,CAP_DSHOW);
if(!capture.isOpened())
{
return;
}
//capture.set(CAP_PROP_SETTINGS,0);//調出 Directshow 攝像頭屬性設置欄
while (true)
{
//讀取一幀圖像
capture.read(camera);
if(camera.empty())
{
continue;
}
imshow("Win7x64",camera);
//Esc
if (waitKey(1) == 27)
{
break;
}
}
return;
}