OpenCV может перейти на композитный ввод?

Я хотел бы знать, может ли OpenCV установить камеру (dev/video1) на композитный или S-video вход.

Камера, которую я использовал, работает только на композитном входе, но v4l2 открывает dev / video1 на входе S-Video по умолчанию. V4l2 может переключаться с S-video на композитный вход с помощью приложения QT V4l2.

OpenCV использует v4l для захвата изображений с камеры, и я хочу перейти на композитный ввод в коде, используя OpenCV. Это возможно? Если это не так, каково решение этого?

Заранее спасибо.

1 ответ

Решение

Вы просто должны изменить ввод с помощью "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_M;)
Другие вопросы по тегам