gpt4 book ai didi

c++ - 在 OpenCV 中使用自定义相机(通过 GStreamer)

转载 作者:可可西里 更新时间:2023-11-01 17:54:30 27 4
gpt4 key购买 nike

我正在使用带有 ov5640 相机(mipi)的 Nitrogen6x 板。

相机没有使用标准的 v4l/v4l,但我们可以使用 GStreamer 为其驱动程序 (mfw_v4l) 流式传输视频:

gst-launch mfw_v4lsrc ! autovideosink

我想通过 GStreamer(OpenCV 中的 GStreamer)调用它来在 OpenCV 中使用相机。我问了一个关于在 OpenCV 中调用 GStreamer 的问题 here ,这是跟进。

如果我启用 GStreamer 支持,它会被选中 in the source code ,但 OpenCV 尝试为我想要更改的 GStreamer 使用标准 V4L/V4L2。关于调用 GStreamer 的部分在 cap_gstreamer.cpp 中:

    CvCapture* cvCreateCapture_GStreamer(int type, const char* filename )
{
CvCapture_GStreamer* capture = new CvCapture_GStreamer;

if( capture->open( type, filename ))
return capture;

delete capture;
return 0;
}

我想这是我应该努力以某种方式指向相机驱动程序的部分。 (这里的“type”可能是与驱动程序相关的数字(如precomp.hpp中定义的),但是“filename”是什么?)

任何有关如何通过 GStreamer 访问相机的建议都会有所帮助和赞赏。谢谢!

最佳答案

看起来我们可以像下面这样使用适当的 GStreamer 管道调用相机:

VideoCapture cap("mfw_v4lsrc ! ffmpegcolorspace ! video/x-raw-rgb ! appsink")

由于相机输出为 YUV,我们需要将其转换为 RGB 以将帧传递给 OpenCV。 This这是 OpenCV 确保它获得 RGB 色彩空间的地方。

关于c++ - 在 OpenCV 中使用自定义相机(通过 GStreamer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23570572/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com