I am getting image from camera using OpenCV. The camera I am using is having maximum dimension 2304 x 1536
.
I am facing one problem I am getting different size of image with changing the input parameters of
VideoCapture(index)
- If I use index = /dev/video0 or index = -1
cam=cv2.VideoCapture("/dev/video0")
or cam=cv2.VideoCapture(-1)
I am getting Image size 640 x 480
always
Warning I am getting is
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (1757) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Cannot identify device '/dev/video-1'.
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (886) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
- If I use 'index = 0`
cam=cv2.VideoCapture(0)
I am getting proper image of size 2304 x 1536
Warning I am getting is
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (933) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
The result of v4l2-ctl -d /dev/video0 --list-formats-ext
command is
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'UYVY'
Name : UYVY 4:2:2
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 2304x1296
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 2304x1536
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.083s (12.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1920x1280
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.040s (25.000 fps)
Size: Discrete 1152x768
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 2048x1536
Interval: Discrete 0.024s (42.000 fps)
Interval: Discrete 0.048s (21.000 fps)
Size: Discrete 1280x960
Interval: Discrete 0.017s (58.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Index : 1
Type : Video Capture
Pixel Format: 'MJPG' (compressed)
Name : Motion-JPEG
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 2304x1296
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 2304x1536
Interval: Discrete 0.021s (48.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1920x1280
Interval: Discrete 0.020s (50.000 fps)
Size: Discrete 1152x768
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 2048x1536
Interval: Discrete 0.020s (50.000 fps)
Size: Discrete 1280x960
Interval: Discrete 0.017s (58.000 fps)
I am not sure about the reason. I want to use cam=cv2.VideoCapture("/dev/video0")
to get the proper full size image. How can I get?