我想知道 OpenCV 是否能够将相机(dev/video1)设置为复合或 S-video 输入。

我使用的相机仅在复合输入中运行,但默认情况下 v4l2 在 S-Video 输入中打开 dev/video1。 V4l2 能够通过 QT V4l2 utils 应用程序从 S-video 转换为复合输入。

opencv 使用 v4l 从相机捕获图像,我想使用 OpenCV 在代码中更改为复合输入。那可能吗?如果不是,解决这个问题的方法是什么?

提前致谢。

最佳答案

您只需使用“v4l2-ctl”更改输入即可!例如,我在树莓派上使用 Python 从 S-Video 使用 OpenCV 捕获视频流:

    import cv, os

    print "Initializing video capture from /dev/video0 ..."
    capture = cv.CaptureFromCAM(0)
    cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_WIDTH, 720)
    cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_HEIGHT, 576)

    print "Configuring video capture (V4L2) ..."
    os.system("v4l2-ctl -d /dev/video0 -i 5 -s 4 --set-fmt-video=width=720,height=576,pixelformat=4")

和 :
  • -d : 设备(在我的例子中是/dev/video0),
  • -i : 输入。对于我的 Easycap(0 = CVBS0;1 = CVBS1;2 = CVBS2;3 = CVBS3;4 = CVBS4;5 = S-VIDEO)
  • -s : 规范 (0 = PAL_BGHIN; 1 = NTSC_N_443; 2 = PAL_Nc; 3 = NTSC_N; 4 = SECAM; 5 = NTSC_M; 6 = NTSC_M_JP; 7 = PAL_60; 8 = NTSC_443; 9) = PAL_L

    关于OpenCV 是否能够更改为复合输入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15329492/

  • 10-11 23:00
    查看更多