树莓派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

正常

相关推荐
无际单片机编程25 分钟前
单片机OTA升级中Bootloader怎么判断APP有没有问题?
java·stm32·单片机·嵌入式硬件·嵌入式
塞尔维亚大汉7 小时前
OpenHarmony轻量系统服务管理samgr-feature赏析及实现
操作系统·嵌入式·harmonyos
塞尔维亚大汉1 天前
OpenHarmony轻量系统服务管理samgr-service赏析
操作系统·嵌入式·harmonyos
别说我什么都不会2 天前
当OpenHarmony遇上OpenEuler
操作系统·嵌入式·harmonyos
别说我什么都不会3 天前
使用Multipass编译OpenHarmony工程
操作系统·嵌入式·harmonyos
别说我什么都不会3 天前
鸿蒙轻内核M核源码分析系列二一 05 文件系统FatFS
操作系统·嵌入式·harmonyos
cykaw25904 天前
NVIC原理和使用
stm32·单片机·嵌入式
别说我什么都不会4 天前
鸿蒙轻内核M核源码分析系列二一 03 文件系统LittleFS
操作系统·嵌入式·harmonyos
Jason_zhao_MR4 天前
米尔基于STM32MP25x核心板Debian系统发布,赋能工业设备
stm32·嵌入式硬件·物联网·debian·嵌入式