这篇文章描述Intel Realsense的高级设置(白平衡,曝光等)
本文适用于:
Intel Realsense D400 系列 SR300系列摄像头
librealsense 2.0 以上可用
本文所有内容均可通过RealSense API取得
rs2_option的定义
原文请见此处
元素 | 含义 |
---|
RS2_OPTION_BACKLIGHT_COMPENSATION | 启用/禁用彩色背光补偿 |
RS2_OPTION_BRIGHTNESS | 彩色图像亮度 |
RS2_OPTION_CONTRAST | 彩色图像对比度 |
RS2_OPTION_EXPOSURE | 控制彩色相机的曝光时间。 设置任何值都将禁用自动曝光。 |
RS2_OPTION_GAIN | 彩色图像增益 |
RS2_OPTION_GAMMA | 彩色图像gamma校正设置 |
RS2_OPTION_HUE | 彩色图像色调 |
RS2_OPTION_SATURATION | 彩色图像饱和度设置 |
RS2_OPTION_SHARPNESS | 彩色图像锐度设置 |
RS2_OPTION_WHITE_BALANCE | 控制彩色图像的白平衡。 设置任何值都将禁用自动白平衡 |
RS2_OPTION_ENABLE_AUTO_EXPOSURE | 启用/禁用彩色图像自动曝光 |
RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE | 启用/禁用彩色图像自动白平衡 |
RS2_OPTION_VISUAL_PRESET | 提供对深度相机的几组推荐选项预设的访问 |
RS2_OPTION_LASER_POWER | F200 / SR300的激光投射功率,0表示关闭激光投射 |
RS2_OPTION_ACCURACY | 设置每帧投射点的图案数量。 精度值越高,投射的图案越多。 增加数量有助于实现更高的准确性。 请注意,此设置会影响深度的帧率。 |
RS2_OPTION_MOTION_RANGE | 运动与范围权衡,较低的值允许更好的运动灵敏度,更高的值允许更好的深度范围 |
RS2_OPTION_FILTER_OPTION | 设置应用于每个深度帧的滤波器。 每个滤波器都根据应用要求进行了优化。 |
RS2_OPTION_CONFIDENCE_THRESHOLD | 用于深度算法管线中像素值是否有效的置信度阈值 |
RS2_OPTION_EMITTER_ENABLED | 是否启用激光发射器 |
RS2_OPTION_FRAMES_QUEUE_SIZE | 每个流允许用户保留的帧数。 保持更多的帧将导致帧丢失。 |
RS2_OPTION_TOTAL_FRAME_DROPS | 从所有流中检测到的帧丢弃总数 |
RS2_OPTION_AUTO_EXPOSURE_MODE | 自动曝光模式:静态,防闪烁和混合 |
RS2_OPTION_POWER_LINE_FREQUENCY | 电源线频率控制,用于防闪烁 |
RS2_OPTION_ASIC_TEMPERATURE | 当前ASIC温度 |
RS2_OPTION_ERROR_POLLING_ENABLED | 禁用错误处理 |
RS2_OPTION_PROJECTOR_TEMPERATURE | 目前的激光发射器温度 |
RS2_OPTION_OUTPUT_TRIGGER_ENABLED | 启用/禁用 从相机输出到 任何外部设备 每个深度帧的 触发器 |
RS2_OPTION_MOTION_MODULE_TEMPERATURE | 当前运动模块温度 |
RS2_OPTION_DEPTH_UNITS | 由单个深度单位表示米数 |
RS2_OPTION_ENABLE_MOTION_CORRECTION | 启用/禁用运动数据的自动校正 |
RS2_OPTION_AUTO_EXPOSURE_PRIORITY | 允许传感器根据光照条件动态调整帧速率 |
RS2_OPTION_COLOR_SCHEME | 数据可视化的配色方案 |
RS2_OPTION_HISTOGRAM_EQUALIZATION_ENABLED | 对深度数据执行直方图均衡后处理 |
RS2_OPTION_MIN_DISTANCE | 到目标的最小距离 |
RS2_OPTION_MAX_DISTANCE | 到目标的最大距离 |
RS2_OPTION_TEXTURE_SOURCE | 纹理映射流ID |
RS2_OPTION_FILTER_MAGNITUDE | 2D滤镜效果。 具体解释在过滤器的上下文中给出 |
RS2_OPTION_FILTER_SMOOTH_ALPHA | 2D滤镜参数控制重量/半径以进行平滑。 |
RS2_OPTION_FILTER_SMOOTH_DELTA | 2D滤波器范围/有效性阈值 |
RS2_OPTION_HOLES_FILL | 在适当的情况下使用 孔洞填充孔增强深度数据后处理 |
RS2_OPTION_STEREO_BASELINE | 立体深度相机的第一和第二成像器之间的以毫米为单位的距离 |
RS2_OPTION_AUTO_EXPOSURE_CONVERGE_STEP | 允许动态调整在自动曝光算法的目标曝光的收敛步长值 |
RS2_OPTION_INTER_CAM_SYNC_MODE | 实施相机间HW同步模式。 适用于D400 /卷帘式快门。 |
RS2_OPTION_STREAM_FILTER | 选择要滤波处理的流 |
RS2_OPTION_STREAM_FORMAT_FILTER | 选择要处理的流格式 |
RS2_OPTION_STREAM_INDEX_FILTER | 选择要处理的流索引 |
RS2_OPTION_EMITTER_ON_OFF | 如果支持,此选项使相机每帧都切换发射器状态。 |
RS2_OPTION_ZERO_ORDER_POINT_X | x零阶点 |
RS2_OPTION_ZERO_ORDER_POINT_Y | y零阶点 |
RS2_OPTION_LLD_TEMPERATURE | LLD温度 |
RS2_OPTION_MC_TEMPERATURE | MC温度 |
RS2_OPTION_MA_TEMPERATURE | MA温度 |
RS2_OPTION_HARDWARE_PRESET | 硬件流配置 |
RS2_OPTION_GLOBAL_TIME_ENABLED | 禁用全球时间 |
RS2_OPTION_APD_TEMPERATURE | APD温度 |
RS2_OPTION_COUNT | 枚举值的数量。 不用于输入:旨在用于for循环。 |
传感器支持参数
此列表中的参数可由代码获取,请参见文末代码
立体相机参数
选项 | 最小值 | 最大值 | 默认值 | 步长 | 读写 |
---|
RS2_OPTION_EXPOSURE | 1 | 165000 | 1 | 33000 | 读写 |
RS2_OPTION_GAIN | 16 | 248 | 1 | 16 | 读写 |
RS2_OPTION_ENABLE_AUTO_EXPOSURE | 0 | 1 | 1 | 1 | 读写 |
RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE | 0 | 1 | 1 | 0 | 读写 |
RS2_OPTION_VISUAL_PRESET 详细 | 0 | 6 | 1 | 0 | 读写 |
RS2_OPTION_LASER_POWER | 0 | 360 | 30 | 150 | 读写 |
RS2_OPTION_EMITTER_ENABLED | 0 | 1 | 1 | 1 | 读写 |
RS2_OPTION_FRAMES_QUEUE_SIZE | 0 | 32 | 1 | 16 | 读写 |
RS2_OPTION_ASIC_TEMPERATURE | -40 | 125 | 0 | 0 | 只读 |
RS2_OPTION_ERROR_POLLING_ENABLED | 0 | 1 | 1 | 0 | 读写 |
RS2_OPTION_PROJECTOR_TEMPERATURE | -40 | 125 | 0 | 0 | 只读 |
RS2_OPTION_OUTPUT_TRIGGER_ENABLED | 0 | 1 | 1 | 0 | 读写 |
RS2_OPTION_DEPTH_UNITS | 0.0001 | 0.01 | 1e-06 | 0.001 | 读写 |
RS2_OPTION_STEREO_BASELINE | 55.1044 | 55.1044 | 0 | 55.1044 | 只读 |
RS2_OPTION_INTER_CAM_SYNC_MODE | 0 | 2 | 0 | 1 | 读写 |
深度视觉预设( RS2_OPTION_VISUAL_PRESET )
值 | 定义 |
---|
0 | 自定义 |
1 | 默认 |
2 | 手 |
3 | 高精度 |
4 | 高密度 |
5 | 中密度 |
6 | 移除红外图案 |
RGB彩色相机
选项 | 最小值 | 最大值 | 默认值 | 步长 | 读写 |
---|
RS2_OPTION_BACKLIGHT_COMPENSATION | 0 | 1 | 1 | 0 | 读写 |
RS2_OPTION_BRIGHTNESS | -64 | 64 | 1 | 0 | 读写 |
RS2_OPTION_CONTRAST | 0 | 100 | 1 | 50 | 读写 |
RS2_OPTION_EXPOSURE | 1 | 10000 | 1 | 156 | 读写 |
RS2_OPTION_GAIN | 0 | 128 | 1 | 64 | 读写 |
RS2_OPTION_GAMMA | 100 | 500 | 1 | 300 | 读写 |
RS2_OPTION_HUE | -180 | 180 | 1 | 0 | 读写 |
RS2_OPTION_SATURATION | 0 | 100 | 1 | 64 | 读写 |
RS2_OPTION_SHARPNESS | 0 | 100 | 1 | 50 | 读写 |
RS2_OPTION_WHITE_BALANCE | 2800 | 6500 | 10 | 4600 | 读写 |
RS2_OPTION_ENABLE_AUTO_EXPOSURE | 0 | 1 | 1 | 1 | 读写 |
RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE | 0 | 1 | 1 | 1 | 读写 |
RS2_OPTION_FRAMES_QUEUE_SIZE | 0 | 32 | 1 | 16 | 读写 |
RS2_OPTION_POWER_LINE_FREQUENCY 详细 | 0 | 3 | 1 | 3 | 读写 |
RS2_OPTION_AUTO_EXPOSURE_PRIORITY | 0 | 1 | 1 | 1 | 读写 |
电源线频率 补偿 ( RS2_OPTION_POWER_LINE_FREQUENCY )
获取本文内容的代码
#include <iostream>
#include <librealsense2/rs.hpp>
using namespace std;
using namespace rs2;
const char* rs2_option_enum_name(int i);
int main()
{
rs2::config rscfg;
rscfg.enable_stream(RS2_STREAM_COLOR, 1280, 720, RS2_FORMAT_BGR8, 30);
rscfg.enable_stream(RS2_STREAM_INFRARED, 1280, 720, RS2_FORMAT_Y8, 30);
rscfg.enable_stream(RS2_STREAM_DEPTH, 1280, 720, RS2_FORMAT_Z16, 30);
pipeline pipe;
pipeline_profile selection = pipe.start(rscfg);
auto sensors = selection.get_device().query_sensors();
for (auto sr : sensors)
{
cout << sr.get_info(RS2_CAMERA_INFO_NAME) << endl;
for (int i = 0; i < 48; i++)
{
if (sr.supports((rs2_option)i))
{
option_range ora = sr.get_option_range((rs2_option)i);
cout << rs2_option_enum_name(i) << ":\t" << rs2_option_to_string((rs2_option)i) << " Range: \tMin:" << ora.min << " Max:" << ora.max << " Step:" << ora.step << " Default:" << ora.def;
bool optro;
if (optro = sr.is_option_read_only((rs2_option)i))
{
cout << " ro" << endl;
}
else
{
cout << " rw" << endl;
}
if ((ora.max - ora.min) / ora.step < 20 && (!optro))
{
cout << "--------------------------------------" << endl;
for (float val = ora.min; val <= ora.max; val += ora.step)
{
if(sr.get_option_value_description((rs2_option)i, val))
cout << val << ": " << sr.get_option_value_description((rs2_option)i, val) << endl;
}
cout << "--------------------------------------" << endl;
}
}
}
}
getchar();
}
const char* rs2_option_enum_name(int i)
{
switch (i)
{
case (int)RS2_OPTION_BACKLIGHT_COMPENSATION: return "RS2_OPTION_BACKLIGHT_COMPENSATION";
case (int)RS2_OPTION_BRIGHTNESS: return "RS2_OPTION_BRIGHTNESS";
case (int)RS2_OPTION_CONTRAST: return "RS2_OPTION_CONTRAST";
case (int)RS2_OPTION_EXPOSURE: return "RS2_OPTION_EXPOSURE";
case (int)RS2_OPTION_GAIN: return "RS2_OPTION_GAIN";
case (int)RS2_OPTION_GAMMA: return "RS2_OPTION_GAMMA";
case (int)RS2_OPTION_HUE: return "RS2_OPTION_HUE";
case (int)RS2_OPTION_SATURATION: return "RS2_OPTION_SATURATION";
case (int)RS2_OPTION_SHARPNESS: return "RS2_OPTION_SHARPNESS";
case (int)RS2_OPTION_WHITE_BALANCE: return "RS2_OPTION_WHITE_BALANCE";
case (int)RS2_OPTION_ENABLE_AUTO_EXPOSURE: return "RS2_OPTION_ENABLE_AUTO_EXPOSURE";
case (int)RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE: return "RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE";
case (int)RS2_OPTION_VISUAL_PRESET: return "RS2_OPTION_VISUAL_PRESET";
case (int)RS2_OPTION_LASER_POWER: return "RS2_OPTION_LASER_POWER";
case (int)RS2_OPTION_ACCURACY: return "RS2_OPTION_ACCURACY";
case (int)RS2_OPTION_MOTION_RANGE: return "RS2_OPTION_MOTION_RANGE";
case (int)RS2_OPTION_FILTER_OPTION: return "RS2_OPTION_FILTER_OPTION";
case (int)RS2_OPTION_CONFIDENCE_THRESHOLD: return "RS2_OPTION_CONFIDENCE_THRESHOLD";
case (int)RS2_OPTION_EMITTER_ENABLED: return "RS2_OPTION_EMITTER_ENABLED";
case (int)RS2_OPTION_FRAMES_QUEUE_SIZE: return "RS2_OPTION_FRAMES_QUEUE_SIZE";
case (int)RS2_OPTION_TOTAL_FRAME_DROPS: return "RS2_OPTION_TOTAL_FRAME_DROPS";
case (int)RS2_OPTION_AUTO_EXPOSURE_MODE: return "RS2_OPTION_AUTO_EXPOSURE_MODE";
case (int)RS2_OPTION_POWER_LINE_FREQUENCY: return "RS2_OPTION_POWER_LINE_FREQUENCY";
case (int)RS2_OPTION_ASIC_TEMPERATURE: return "RS2_OPTION_ASIC_TEMPERATURE";
case (int)RS2_OPTION_ERROR_POLLING_ENABLED: return "RS2_OPTION_ERROR_POLLING_ENABLED";
case (int)RS2_OPTION_PROJECTOR_TEMPERATURE: return "RS2_OPTION_PROJECTOR_TEMPERATURE";
case (int)RS2_OPTION_OUTPUT_TRIGGER_ENABLED: return "RS2_OPTION_OUTPUT_TRIGGER_ENABLED";
case (int)RS2_OPTION_MOTION_MODULE_TEMPERATURE: return "RS2_OPTION_MOTION_MODULE_TEMPERATURE";
case (int)RS2_OPTION_DEPTH_UNITS: return "RS2_OPTION_DEPTH_UNITS";
case (int)RS2_OPTION_ENABLE_MOTION_CORRECTION: return "RS2_OPTION_ENABLE_MOTION_CORRECTION";
case (int)RS2_OPTION_AUTO_EXPOSURE_PRIORITY: return "RS2_OPTION_AUTO_EXPOSURE_PRIORITY";
case (int)RS2_OPTION_COLOR_SCHEME: return "RS2_OPTION_COLOR_SCHEME";
case (int)RS2_OPTION_HISTOGRAM_EQUALIZATION_ENABLED: return "RS2_OPTION_HISTOGRAM_EQUALIZATION_ENABLED";
case (int)RS2_OPTION_MIN_DISTANCE: return "RS2_OPTION_MIN_DISTANCE";
case (int)RS2_OPTION_MAX_DISTANCE: return "RS2_OPTION_MAX_DISTANCE";
case (int)RS2_OPTION_TEXTURE_SOURCE: return "RS2_OPTION_TEXTURE_SOURCE";
case (int)RS2_OPTION_FILTER_MAGNITUDE: return "RS2_OPTION_FILTER_MAGNITUDE";
case (int)RS2_OPTION_FILTER_SMOOTH_ALPHA: return "RS2_OPTION_FILTER_SMOOTH_ALPHA";
case (int)RS2_OPTION_FILTER_SMOOTH_DELTA: return "RS2_OPTION_FILTER_SMOOTH_DELTA";
case (int)RS2_OPTION_HOLES_FILL: return "RS2_OPTION_HOLES_FILL";
case (int)RS2_OPTION_STEREO_BASELINE: return "RS2_OPTION_STEREO_BASELINE";
case (int)RS2_OPTION_AUTO_EXPOSURE_CONVERGE_STEP: return "RS2_OPTION_AUTO_EXPOSURE_CONVERGE_STEP";
case (int)RS2_OPTION_INTER_CAM_SYNC_MODE: return "RS2_OPTION_INTER_CAM_SYNC_MODE";
case (int)RS2_OPTION_STREAM_FILTER: return "RS2_OPTION_STREAM_FILTER";
case (int)RS2_OPTION_STREAM_FORMAT_FILTER: return "RS2_OPTION_STREAM_FORMAT_FILTER";
case (int)RS2_OPTION_STREAM_INDEX_FILTER: return "RS2_OPTION_STREAM_INDEX_FILTER";
case (int)RS2_OPTION_EMITTER_ON_OFF: return "RS2_OPTION_EMITTER_ON_OFF";
case (int)RS2_OPTION_COUNT: return "RS2_OPTION_COUNT";
default:
return "NOT EXIST";
}
}