我尝试使用 Tango 设备捕获 HDR 图像,但无论我如何设置 Tango 配置 ISO 和曝光设置,图像都没有明显的变化。
我正在禁用自动曝光和自动白平衡,并为 ISO 和曝光时间设置手动值。无论我的设置如何,从 onFrameAvailable 返回的彩色相机图像似乎始终处于自动模式。无论将 ISO 设置为 100、200、400 或 800,以及曝光时间为 11.1 毫秒还是该量的 2、8 或 1/2 倍,给定场景的测量平均 RGB 都是相同的。它似乎仍然处于自动模式,因为我将设备指向明亮的窗户,窗户显示纯白色 1 秒钟,然后亮度下降,我可以看到窗外的东西。
所以我的 Yellowstone 平板电脑是最新的 (KOT49H.150731),并且我有客户端 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 的原因是为了获取姿态估计和图像。