linux下使用v4l2-ctl查看摄像头数据

安装

我有一个支持uvc的相机,通过USB线和我的linux开发机连起来了。为了查看它的信息,我上网发现有v4l-utils这个包。这个包的工具可以让我在写代码前就对相机的参数有个大概了解。

sudo apt install v4l-utils

安装成功后系统上多出了一下工具:

v4l2-compliance  v4l2-ctl         v4l2-dbg         v4l2-sysfs-path

我主要是用v4l2-ctl来查看摄像头的信息。

罗列所有摄像头设备

虽然下面显示/dev下两个设备,但是实际上就一个摄像头(Webcam gadget),下面用/dev/video0来访问。

#v4l2-ctl --list-devices
Webcam gadget: UVC Camera (usb-0000:00:14.0-1):
        /dev/video0
        /dev/video1

查看支持的分辨率和格式

我这个相机是4K的,可以看到4K的格式

#v4l2-ctl --device=/dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'YUYV' (YUYV 4:2:2)
                Size: Discrete 1280x720
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 3840x2160
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
        [1]: 'MJPG' (Motion-JPEG, compressed)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)

查看支持的可调参数

摄像头的有些参数是可调的,有些甚至支持zoom和云台的控制,具体的情况是看相机端实现的。我这里可调参数较少,主要是一些图像参数。

v4l2-ctl -d /dev/video0 --list-ctrls
                     brightness 0x00980900 (int)    : min=0 max=21997 step=1 default=50 value=11500
                       contrast 0x00980901 (int)    : min=0 max=100 step=1 default=50 value=0
                     saturation 0x00980902 (int)    : min=0 max=127 step=1 default=50 value=60
                            hue 0x00980903 (int)    : min=0 max=0 step=10 default=90 value=0
 white_balance_temperature_auto 0x0098090c (bool)   : default=0 value=0

你可能感兴趣的:(linux,v4l2,图像处理,图像编码)