我刚刚将我的设备更新到最新的(Leibniz)版本,以下是一些观察/问题:
1) 我的应用程序现在存在长时间(2-3 秒)的间歇期,其中姿势数据无效。我认为问题出在驱动程序中,因为该问题也出现在 Tango Explorer 中。只需启动资源管理器并将其放置在那里,就会弹出“运动跟踪丢失”对话框。谁能证实这一点吗?
2) TangoService_connectOnFrameAvailable() 回调中的颜色缓冲区现在又回来了,但在 YUV420SP 中,如发行说明中所述。探戈开发者中的任何人都可以发布将其转换为 RGB 的代码吗?我知道我可以用谷歌搜索这些东西,但最好有一个与 TangoImageBuffer 宽度、高度、步幅等相关的示例。
快点,这是我在 Tango 中使用的 YUV 代码
// http://en.wikipedia.org/wiki/YUV
int halfi, uvOffset, halfj, uvOffsetHalfj;
float y_scaled, v_scaled, u_scaled;
const float Umax = 0.436f;
const float Vmax = 0.615f;
unsigned char* pData = TangoData::cameraImageBuffer;
unsigned char* iData = TangoData::cameraImageBufferRGBA;
float invByte = 0.0039215686274509803921568627451; // ( 1 / 255)
is_image_dirty = false;
int size = (int)(TangoData::imageBufferStride * TangoData::imageBufferHeight);
int uOffset = size / 4 + size;
int halfstride = TangoData::imageBufferStride / 2;
for (int i = 0; i < TangoData::imageBufferHeight; ++i)
{
halfi = i / 2;
uvOffset = halfi * halfstride;
for (int j = 0; j < TangoData::imageBufferWidth; ++j)
{
halfj = j / 2;
uvOffsetHalfj = uvOffset + halfj;
y_scaled = pData[i * TangoData::imageBufferStride + j] * invByte;
v_scaled = 2 * (pData[uvOffsetHalfj + size] * invByte - 0.5f) * Vmax;
u_scaled = 2 * (pData[uvOffsetHalfj + uOffset] * invByte - 0.5f) * Umax;
*iData++ = (unsigned char)((y_scaled + 1.13983f * v_scaled) * 255.0);;
*iData++ = (unsigned char)((y_scaled - 0.39465f * u_scaled - 0.58060f * v_scaled) * 255.0);
*iData++ = (unsigned char)((y_scaled + 2.03211f * u_scaled) * 255.0);
*iData++ = 255;
}
}
现在,当之前对返回格式进行未宣布的更改时,我对其进行了深入研究,进行了更改,并询问这是否会保持一致 - 像往常一样,蟋蟀。然后两个版本前他们破坏了整个图像返回,显然没有注意到它,并且再次,当被问到......蟋蟀!
亲爱的 Google 开发人员,我真的不想这么说,但这不是我的第一次牛仔竞技表演。我从 Tango 开始,非常兴奋,但考虑到完全缺乏沟通,以及发布周期中明显的混乱,我现在已经开始幻灭,并担心我可能会继续完全厌恶。我认为我们这些在 Google 之外寻找 AR 工具的人可能真的需要考虑其他途径。坦率地说,Google 开发人员,如果您为自己的进步感到自豪,那么您不应该感到自豪 - 这甚至不是一个 A 级学术研究项目。我真的很抱歉这么说,但这已经过去太久了,你的情况越来越糟。把它关掉!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)