opencv读取摄像头并显示的C++代码
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main() { // 创建VideoCapture对象,参数为0表示打开默认摄像头 VideoCapture cap(0); // 检查摄像头是否成功打开 if (!cap.isOpened()) { cout << "Failed to open camera!" << endl; return -1; } // 创建窗口 namedWindow("Camera", WINDOW_NORMAL); // 循环读取摄像头捕捉到的帧并显示 while (true) { // 读取一帧图像 Mat frame; cap.read(frame); // 检查是否成功读取到一帧图像 if (frame.empty()) { cout << "Failed to read frame from camera!" << endl; break; } // 显示图像 imshow("Camera", frame); // 按下q键退出循环 if (waitKey(1) == 'q') break; } // 释放摄像头资源和所有窗口 cap.release(); destroyAllWindows(); return 0; }
解释一下代码的主要部分:
-
首先包含OpenCV库的头文件,并使用命名空间cv和std。
-
创建一个VideoCapture对象,并将参数设置为0,表示打开默认的摄像头。
-
检查摄像头是否成功打开。如果失败,则输出错误消息并返回-1。
-
创建一个名为"Camera"的窗口。
-
循环读取摄像头捕捉到的帧,并显示在窗口中。
-
读取一帧图像。使用cap.read函数读取一帧图像,并将其存储在Mat对象frame中。
-
检查是否成功读取到一帧图像。如果失败,则输出错误消息并退出循环。
-
显示图像。使用imshow函数显示图像,并指定窗口标题。
-
等待按键输入。使用waitKey函数等待用户按下按键,并返回按下的键码。
-
按下q键退出循环(这个好像不能用)。
-
释放摄像头资源和所有窗口。在程序结束时,使用cap.release函数释放摄像头资源,并使用destroyAllWindows函数关闭所有窗口。
第一次写博客希望大家见谅。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具