USB摄像头设置采集亮度和对比度

简介: USB摄像头设置采集亮度和对比度

1.设置usb摄像头的亮度和对比度

2.ffmpeg中滤镜设置亮度和对比度

3.obs中的色彩范围设置


1.设置usb摄像头的亮度和对比度

要在 UVC 协议中设置亮度和对比度,你需要使用 v4l2-ctl 命令行工具来控制 UVC 摄像头的设置。在 Ubuntu 20 下,你可以使用以下命令设置亮度和对比度:

v4l2-ctl -d /dev/video0 --set-ctrl=brightness=<brightness>
v4l2-ctl -d /dev/video0 --set-ctrl=contrast=<contrast>


其中, 和 分别表示亮度和对比度的值。你可以使用介于0和255之间的整数来设置这些值。0 表示最低亮度/对比度,255 表示最高亮度/对比度。


例如,要将亮度设置为30,对比度设置为50,可以使用以下命令:

v4l2-ctl -d /dev/video0 --set-ctrl=brightness=30
v4l2-ctl -d /dev/video0 --set-ctrl=contrast=50


要查看当前摄像头的亮度和对比度设置,可以使用以下命令:

v4l2-ctl -d /dev/video0 --get-ctrl=brightness
v4l2-ctl -d /dev/video0 --get-ctrl=contrast


这将显示当前的亮度和对比度值。例如,如果当前的亮度值是 30,对比度值是 50,则命令的输出将类似于以下内容:

brightness: 30

contrast: 50


v4l2-ctl -d /dev/video2 --list-ctrls


User Controls

brightness 0x00980900 (int) : min=-128 max=127 step=1 default=-11 value=-11

contrast 0x00980901 (int) : min=0 max=255 step=1 default=148 value=148

saturation 0x00980902 (int) : min=0 max=255 step=1 default=180 value=180

hue 0x00980903 (int) : min=-128 max=127 step=1 default=0 value=0


亮度0x00980900(int):最小值=-128最大值=127步长=1默认值=-11值=-64

对比度0x00980901(int):最小值=0最大值=255步长=1默认值=148值=148

饱和度0x00980902(int):最小值=0最大值=255步长=1默认值=180值=180

色调0x00980903(int):最小值=-128最大值=127步长=1默认值=0值=0


2.ffmpeg中滤镜设置亮度和对比度

可以通过 FFmpeg 的滤镜来实现,比如使用 scale 滤镜进行转换。同时,也可以在转换过程中改变色彩范围,比如使用 scale 滤镜的 in_range 和 out_range 参数来指定输入和输出的色彩范围,例如:

ffplay -vf "scale=in_range=bt601:out_range=bt709" input.mp4


这里的 in_range 参数指定输入的色彩范围为 bt601,out_range 参数指定输出的色彩范围为 bt709。可以根据需要进行调整。


3.obs中的色彩范围设置

在 OBS 中,Color Range 选项是指视频的色彩范围。它有两个选项:Limited 和 Full。


设置成limited或者full会对画质产生什么影响吗?

设置为 Limited 或 Full 色彩范围会影响视频信号的亮度和色彩范围,从而对画质产生影响。

当设置为 limited 时,视频采用的是 BT.601 标准的颜色空间,颜色范围是 16-235。而当设置为 full 时,视频采用的是 BT.709 标准的颜色空间,颜色范围是 0-255。

在 Full 色彩范围下,视频信号的亮度范围是 0 到 255,色彩范围是 0 到 255。这意味着黑色和白色的值可以达到 0 和 255,颜色值的范围也可以达到 0 到 255。这种范围通常在视频编辑、颜色分级等应用中使用。


在 Limited 色彩范围下,视频信号的亮度范围是 16 到 235,色彩范围是 16 到 240。这意味着黑色和白色的值的范围在 16 到 235 之间,颜色值的范围在 16 到 240 之间。这种范围通常在广播、视频传输等领域中使用。


因此,使用 Full 色彩范围可能会产生更鲜艳的颜色和更高的对比度,而使用 Limited 色彩范围可能会产生更为柔和的颜色和更适合视频传输和播放的画面。

对于 Full 色彩范围,可以使用以下命令:

v4l2-ctl -d /dev/video0 --set-ctrl=colorspace=1


对于 Limited 色彩范围,可以使用以下命令:

v4l2-ctl -d /dev/video0 --set-ctrl=colorspace=8


注意,这些命令仅在摄像头支持控制颜色空间的情况下才有效。如果摄像头不支持此控制项,则命令将失败。可以使用 v4l2-ctl -d /dev/video0 --list-ctrls 命令查看摄像头支持哪些控制项。


thxchtb3wcn3k_d11fc1ff3db9431d8ad7575e9297ae48.png

相关文章
|
编解码 C++ 索引
UVC 基础学习(5):VideoStream Interface 描述符介绍
今天我们继续学习UVC的接口描述符:VideoStream 。 VideoStream 接口描述符是整个UVC设备最重要的组成之一,和VideoControl一样,其也包含标准接口和特殊类接口。
1971 0
|
编解码 Linux 数据格式
UVC 批量传输技术探讨
UVC 批量传输技术探讨
9036 0
|
传感器 编解码 Linux
V4L2框架 | MIPI Camera指令调试笔记
V4L2框架 | MIPI Camera指令调试笔记
9566 2
|
机器人 Python
ROS2教程 03 节点Node
本文是关于ROS2(机器人操作系统2)的教程,介绍了ROS2的节点概念、与ROS1的区别、节点的编写和基本流程、ros2的node相关命令,以及如何对节点名进行重映射,旨在帮助读者理解ROS2中节点的创建和操作。
1087 0
ROS2教程 03 节点Node
|
开发工具 C语言 git
libusb + libuvc 环境搭建
libusb + libuvc 环境搭建
2974 0
|
Linux 芯片
一篇文章讲明白Linux下控制GPIO的三种方法
一篇文章讲明白Linux下控制GPIO的三种方法
3019 3
|
Unix Linux API
开源库介绍:libusb 及其使用
开源库介绍:libusb 及其使用
8066 0
开源库介绍:libusb 及其使用
|
存储 监控 安全
ONVIF协议介绍
ONVIF协议介绍
9411 0
如何设置Excel的快捷键?
【10月更文挑战第19天】如何设置Excel的快捷键?
3261 8
|
传感器 机器学习/深度学习 算法
布谷RC汽车远程遥控控制系统源码:技术与功能深度解析​
遥控汽车(RC汽车)以其趣味性和操控性深受爱好者喜爱,其核心在于精密的控制系统源码。山东布谷科技在该领域成果显著,通过优化主控芯片、电机驱动模块及通信模块代码,实现精准控制与稳定传输。系统支持PID算法等技术,提升车辆性能,并拓展智能避障、自动驾驶等功能。实际应用中,布谷科技源码助力竞技比赛与教育科研,未来将融入深度学习和多车协同控制,推动RC汽车向智能化、高效化发展。

热门文章

最新文章