2013-03-11 9 views
3

OpenCV가 카메라 (dev/video1)를 컴포지트 또는 S- 비디오 입력으로 설정할 수 있는지 알고 싶습니다.OpenCV가 합성 입력으로 바꿀 수 있습니까?

사용하고있는 카메라는 컴포지트 입력에서만 실행되지만 v4l2는 기본적으로 S- 비디오 입력에서 dev/video1을 엽니 다. V4l2는 QT V4l2 유틸리티 응용 프로그램을 사용하여 S- 비디오에서 컴포지트 입력으로 변경할 수 있습니다.

opencv는 v4l을 사용하여 카메라에서 이미지를 캡처하고 있으며 OpenCV를 사용하여 코드에서 컴포지트 입력으로 변경하려고합니다. 그게 가능하니? 그것이 아니라면, 이것에 대한 해결책은 무엇입니까?

미리 감사드립니다.

답변

3

"v4l2-ctl"로 입력을 변경하십시오! 예를 들어, 내가 OpenCV의와 S 비디오에서 비디오 스트림을 캡처 내 라즈베리에 파이썬을 사용

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 : norm (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)
+0

나는 이해했다. 고맙습니다. 당신은 다음과 같이 v4l2-clt를 사용하여 입력을 1 (내 장치의 복합 입력)로 설정했습니다. v4l2-ctl -d/dev/video1 -i 1 – user2155042