当前位置: 首页 > article >正文

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

在这里插入图片描述
效果:
在这里插入图片描述


http://www.kler.cn/a/454814.html

相关文章:

  • 68jQuery【jQuery操作DOM、事件】
  • arm架构 uos操作系统离线安装k8s
  • OpenCV相机标定与3D重建(35)计算两幅图像之间本质矩阵(Essential Matrix)的函数findEssentialMat()的使用
  • k8s,service如何找到容器
  • 鸿蒙之路的坑
  • SQL创建和操纵表
  • 【进阶编程】代理模式和适配模式的比较
  • 【视觉惯性SLAM:八、ORB-SLAM2:特征匹配】
  • 外键约束的应用层维护
  • Spring Boot 自动配置:从 spring.factories 到 AutoConfiguration.imports
  • PlantUML 入门使用指南
  • Llama 3 后训练(三)
  • 逻辑控制语句
  • 【Unity3D】ECS入门学习(六)状态组件 ISystemStateComponentData
  • fisco-bcos手动部署区块链浏览器
  • 【Leetcode】3159. 查询数组中元素的出现位置
  • 顶会评测集解读-AlignBench: 大语言模型中文对齐基准
  • 什么是Top-p采样与Top-k采样?大模型推理时如何同时设置?解析Transformers库源代码
  • 智能合约在Web3中的作用:去中心化应用的基石
  • 探寻 OneCode 核心优势:MVVM 进阶与前后端协同之魅
  • HTML5 开发工具与调试
  • Kubernetes 的资源管理方式
  • 【Java 代码审计入门-02】SQL 漏洞原理与实际案例介绍
  • 负载均衡式在线OJ系统测试报告(Jmeter性能测试、Selenium自动化测试脚本)
  • 嵌入式单片机模数转换控制与实现详解
  • JS 设置按钮的loading效果