我正在尝试使用Tango设备捕捉HDR图像,但无论我如何设置Tango配置ISO和曝光设置,图像都没有明显的变化。
我正在禁用自动曝光和自动白平衡以及设置ISO和曝光时间的手动值。无论我的设置如何,从onFrameAvailable返回的彩色相机图像似乎总是处于自动模式。无论将ISO设置为100,200,400或800,并且曝光量为11.1 ms或此量的2,8或1/2倍,给定场景的测量平均RGB均相同。它似乎仍处于自动模式,因为我将设备指向一个明亮的窗口,窗口显示为纯白色1秒钟,然后亮度下降,我可以看到窗外是什么。
所以我的Yellowstone平板电脑是最新的(KOT49H.150731),我有Turing版本的客户端API。我正在使用带有应用程序的C api,该应用程序基本上是用于运动跟踪,深度和增强现实的示例程序的组合。下面的代码应该有效吗?
const bool autoExposure = false;
const int32_t iso = 800;
const double exposure = 11.1*2.0; // milliseconds
if ( TangoConfig_setBool( config_, "config_color_mode_auto", autoExposure) != TANGO_SUCCESS) {
LOGE("config_color_mode_auto Failed");
return false;
}
if ( TangoConfig_setInt32(config_ , "config_color_iso", iso) != TANGO_SUCCESS) {
LOGE("config_color_iso Failed");
return false;
}
if ( TangoConfig_setInt32(config_ , "config_color_exp", (int32_t)::floor(exposure*1e6)) != TANGO_SUCCESS) {
LOGE("config_color_exp Failed");
return false;
}
bool verifyAutoExposureState;
int32_t verifyIso, verifyExp;
TangoConfig_getBool( config_, "config_color_mode_auto", &verifyAutoExposureState );
TangoConfig_getInt32( config_, "config_color_iso", &verifyIso );
TangoConfig_getInt32( config_, "config_color_exp", &verifyExp );
LOGE( "config_colour autoExposure=%s %d %d", verifyAutoExposureState?"On" : "Off", verifyIso, verifyExp );
使用Tango API在Android上捕获HDR而不是通过Android API的原因是为了获得姿势估计以及图像。