用户态可以通过v4l2自带工具进行一些UVC相机参数的设定,包括采集卡驱动之类,也可以通过v4l2自带工具进行参数设定。
通过修改这些参数的值,可以弥补相机本身彩色部分自带不足。
总的来说就这么几种命令:
查看设备所有参数信息:
v4l2-ctl -d /dev/videoX --list-ctrls
ps:X表示相机挂载的UVC节点号,如0,9之类
一般会显示以下四种参数
最小 最大 步进 默认 当前
brightness 0x00980900 (int) : min=0 max=100 step=1 default=50 value=66 #亮度
contrast 0x00980901 (int) : min=0 max=100 step=1 default=50 value=50 #对比度
saturation 0x00980902 (int) : min=0 max=100 step=1 default=50 value=50 #饱和度
hue 0x00980903 (int) : min=0 max=100 step=1 default=50 value=50 #色调
注意:不同驱动、采集卡反馈信息是不一样的,范围也不一样。有些0~100,有些0~255,也有些-128-127 不一样,因此需要先查看下值
查看某个属性值
v4l2-ctl -d /dev/videoX --get-ctrl=brightness
就会返回该参数对应的值
设置摸个属性值
v4l2-ctl -d /dev/videoX --set-ctrl=brightness=30
注意设置值的范围是否超过该参数的范围
这些参数都是可以设置的,
当然前提在拉流之前设置,如果已经开始拉流了,会导致视频流卡住的。
那么,我们应该如何设置这些参数呢?这些参数有什么关系吗?
先从简单来说,亮度与对比度,这个一般都知道。
如果是在光线不足的情况下,可以提高亮度的值,这样图像就会更加明亮一点(感觉更清晰点)
也可以提高对比度的值,但效果不是一样
当然这个跟实际场景有一定关系,也不能完全一概而论,对于大部分建议40%对比度、60%亮度,这样比较真实点,当然跟相机sensor本身也有很大关系
图片虽然是相机拍摄的效果,但原理一样
另外一组参数,色调与饱和度,色调相当于亮度、饱和度相当于对比度
色调如果过低,那么绿色会变蓝色,色调过高,那么蓝色变成绿色
一般先调色调,把颜色调成一致,然后再调饱和度,
颜色要对比强烈点(更靓丽点),饱和度高一点(过高的话,会偏白色,感觉像是灰蒙蒙一层)
饱和度调高之后