Intel Realsense 传感器设置

这篇文章描述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_POWERF200 / 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_MAGNITUDE2D滤镜效果。 具体解释在过滤器的上下文中给出
RS2_OPTION_FILTER_SMOOTH_ALPHA2D滤镜参数控制重量/半径以进行平滑。
RS2_OPTION_FILTER_SMOOTH_DELTA2D滤波器范围/有效性阈值
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_Yy零阶点
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_EXPOSURE1165000133000读写
RS2_OPTION_GAIN16248116读写
RS2_OPTION_ENABLE_AUTO_EXPOSURE0111读写
RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE0110读写
RS2_OPTION_VISUAL_PRESET 详细0610读写
RS2_OPTION_LASER_POWER036030150读写
RS2_OPTION_EMITTER_ENABLED0111读写
RS2_OPTION_FRAMES_QUEUE_SIZE032116读写
RS2_OPTION_ASIC_TEMPERATURE-4012500只读
RS2_OPTION_ERROR_POLLING_ENABLED0110读写
RS2_OPTION_PROJECTOR_TEMPERATURE-4012500只读
RS2_OPTION_OUTPUT_TRIGGER_ENABLED0110读写
RS2_OPTION_DEPTH_UNITS0.00010.011e-060.001读写
RS2_OPTION_STEREO_BASELINE55.104455.1044055.1044只读
RS2_OPTION_INTER_CAM_SYNC_MODE0201读写

深度视觉预设( RS2_OPTION_VISUAL_PRESET )

定义
0自定义
1默认
2
3高精度
4高密度
5中密度
6移除红外图案

RGB彩色相机

选项最小值最大值默认值步长读写
RS2_OPTION_BACKLIGHT_COMPENSATION0110读写
RS2_OPTION_BRIGHTNESS-646410读写
RS2_OPTION_CONTRAST0100150读写
RS2_OPTION_EXPOSURE1100001156读写
RS2_OPTION_GAIN0128164读写
RS2_OPTION_GAMMA1005001300读写
RS2_OPTION_HUE-18018010读写
RS2_OPTION_SATURATION0100164读写
RS2_OPTION_SHARPNESS0100150读写
RS2_OPTION_WHITE_BALANCE28006500104600读写
RS2_OPTION_ENABLE_AUTO_EXPOSURE0111读写
RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE0111读写
RS2_OPTION_FRAMES_QUEUE_SIZE032116读写
RS2_OPTION_POWER_LINE_FREQUENCY 详细0313读写
RS2_OPTION_AUTO_EXPOSURE_PRIORITY0111读写

电源线频率 补偿 ( RS2_OPTION_POWER_LINE_FREQUENCY )

定义
0禁用
150Hz
260Hz
3自动

获取本文内容的代码

#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";
	}
}