树莓派5添加摄像头 在C++下调用opencv

由于树莓派5 os系统升级,正常libcamera创建对象每次失败。

改如下方法成功。

1 创建管道

rpicam-vid -t 0 --codec mjpeg -o udp://127.0.0.1:8554 > /dev/null 2>&1

2 opencv从管道里读取

复制代码
#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
    // 通过 UDP 读取视频流
//cv::VideoCapture cap("udp://127.0.0.1:8554", cv::CAP_FFMPEG);
    cv::VideoCapture cap("udp://127.0.0.1:8554", cv::CAP_FFMPEG);
    if (!cap.isOpened()) {
        std::cerr << "无法打开摄像头视频流!" << std::endl;
        return -1;
    }

    cv::Mat frame;
    while (true) {
        cap >> frame;
        if (frame.empty()) break;

        cv::imshow("Camera Stream", frame);
        if (cv::waitKey(1) == 27) break;  // 按 ESC 退出
    }

    cap.release();
    cv::destroyAllWindows();
    return 0;
}

编译

g++ camera_capture.cpp -o camera_capture pkg-config --cflags --libs opencv4

运行

sudo ./camera_capture

正常

相关推荐
大聪明-PLUS1 天前
为未知 USB 设备编写 Linux 内核驱动程序
linux·嵌入式·arm·smarc
奇某人2 天前
【语法】【Plantuml】思维导图基础语法
学习·嵌入式
一枝小雨2 天前
【DMA】深入解析DMA控制器架构与运作原理
stm32·单片机·嵌入式硬件·系统架构·dma·嵌入式·arm
一枝小雨2 天前
【DMA】DMA入门:理解DMA与CPU的并行
单片机·系统架构·dma·嵌入式·arm
大聪明-PLUS3 天前
关于Linux中的软链接和硬链接
linux·嵌入式·arm·smarc
念风10 天前
[Linux学习笔记]F1C100S的u-boot学习记录
嵌入式
大聪明-PLUS14 天前
GCC 对 C 语言的扩展
linux·嵌入式·arm·smarc
大聪明-PLUS15 天前
使用 ftrace 跟踪 Linux 内核
linux·嵌入式·arm·smarc
求知喻15 天前
存储空间操作
嵌入式
BoredWait15 天前
《步进电机》 rust 嵌入式esp23
rust·嵌入式