c++ 打开摄像头并显示摄像头捕获的数据
代码:
#include <opencv2/opencv.hpp>
#include <iostream>
#define WINDOWNAME "cam"
using namespace cv;
using namespace std;
void myErrorLog(const char* log);
int main(){
// 创建摄像头对象,尝试打开摄像头0
VideoCapture cap(0);
// 检查摄像头是否打开成功
if(!cap.isOpened()){
myErrorLog("open camera failed");
return -1;
}
// 创建窗口用于显示摄像头捕获数据
namedWindow(WINDOWNAME, WINDOW_NORMAL);
// 循环读取数据并显示
while(true){
// 创建帧对象,并读取
Mat frame;
cap.read(frame);
// 查看是否读到数据
if(frame.empty()){
myErrorLog("read frame failed");
break;
}
// 显示
imshow(WINDOWNAME, frame);
// t退出按键
if(waitKey(1) == 'q')
break;
}
// 释放资源
cap.release();
destroyAllWindows();
}
void myErrorLog(const char* log){
printf("Log: %s\n", log);
}
需要依赖库:
sudo apt install libopencv-dev python3-opencv
ls /dev/video* 显示没有设备可以看看右下角摄像头是否开启
编译:
g++ camera.cpp -o main `pkg-config --cflags --libs opencv`
chmod 777 main
./main
效果: