用opencv调用摄像头的程序用c语言给出,并逐行解释
时间: 2023-05-28 15:05:26 浏览: 339
OpenCV图像读入读出的C语言版
4星 · 用户满意度95%
#include <opencv2/opencv.hpp> //导入OpenCV库
#include <iostream>
using namespace cv; //命名空间
int main()
{
VideoCapture cap(0); //调用摄像头
if (!cap.isOpened()) //判断摄像头是否打开
{
std::cout << "Could not open camera." << std::endl;
return -1;
}
namedWindow("Camera", WINDOW_NORMAL); //创建窗口
while (1)
{
Mat frame; //创建图像矩阵
cap >> frame; //读取摄像头图像
if (frame.empty()) //判断图像是否为空
{
std::cout << "Could not read frame." << std::endl;
break;
}
imshow("Camera", frame); //显示图像
if (waitKey(30) == 'q') //等待用户按下q键退出
{
break;
}
}
cap.release(); //释放摄像头
return 0;
}
解释:
1.第1~3行导入OpenCV库和iostream库。
2.第5行使用命名空间cv。
3.第7~10行定义main函数,创建一个VideoCapture对象cap来调用摄像头。
4.第12~16行判断摄像头是否打开,如果未打开,则输出错误信息并返回-1。
5.第18行创建一个窗口,名称为“Camera”,大小为WINDOW_NORMAL。
6.第20~33行使用while循环来不断读取摄像头图像并显示。
7.第22行创建一个Mat对象frame来存储图像矩阵。
8.第24行使用cap >> frame读取摄像头图像,将其存储到frame中。
9.第26~29行判断图像是否为空,如果为空则输出错误信息并退出循环。
10.第31行使用imshow函数将图像显示在名为“Camera”的窗口中。
11.第33~36行使用waitKey函数等待用户按下q键退出循环。
12.第38行使用release函数释放摄像头。
13.第40行返回0,结束程序。
阅读全文