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;
}
复制代码

解释一下代码的主要部分:

  1. 首先包含OpenCV库的头文件,并使用命名空间cv和std。

  2. 创建一个VideoCapture对象,并将参数设置为0,表示打开默认的摄像头。

  3. 检查摄像头是否成功打开。如果失败,则输出错误消息并返回-1。

  4. 创建一个名为"Camera"的窗口。

  5. 循环读取摄像头捕捉到的帧,并显示在窗口中。

  6. 读取一帧图像。使用cap.read函数读取一帧图像,并将其存储在Mat对象frame中。

  7. 检查是否成功读取到一帧图像。如果失败,则输出错误消息并退出循环。

  8. 显示图像。使用imshow函数显示图像,并指定窗口标题。

  9. 等待按键输入。使用waitKey函数等待用户按下按键,并返回按下的键码。

  10. 按下q键退出循环(这个好像不能用)。

  11. 释放摄像头资源和所有窗口。在程序结束时,使用cap.release函数释放摄像头资源,并使用destroyAllWindows函数关闭所有窗口。

  12. 第一次写博客希望大家见谅。

posted @   青杀傻瓜化  阅读(1750)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示