我想知道是否可以使用“opencv”在v4l2设备上进行写操作。
我会拍照,使用opencv的功能进行一些小的更改,然后将其发送到v4l2设备上。

我在网上搜索,但是有很多关于如何从V4L2设备读取信息的示例,但是我发现关于在v4l2上编写内容一无所获。

有人能帮我吗?

最佳答案

这个问题已经有8个月了,但是如果您仍然需要答案(我想您的操作系统是Linux):

  • 安装 v4l2 loopback 模块

    1.1。加载并配置linux: i.e. modprobe.conf: options v4l2loopback video_nr=22,23
  • 使用这样的C++/OpenCV代码: gist

    2.1。使用ioctl()调用来设置设备

    2.2。将原始RGB数据写入此设备(即/dev/video23)

    2.3。将其用作常规v4l2设备(即网络摄像头或vlc v4l2:///dev/video23)

  • 更多:您可以将ffmpegv4l2 loopback结合使用:ffmpeg -f x11grab -r 12 -s 1920x1080 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 -vf 'scale=800:600' /dev/video22

    关于V4l2上的OpenCV输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34416189/

    10-13 07:05