【发布时间】:2018-06-15 15:54:00
【问题描述】:
我已经被这个问题困扰了好几天了。我正在尝试对我的项目进行一些图像处理。我查看了ARCore 提供的计算机视觉示例,但它只显示了如何访问黑白相机帧。我的图像需要颜色。我已经看过Save AcquireCameraImageBytes() from Unity ARCore to storage as an image
并且没有运气。
我有一个名为GetImage() 的函数,它应该将相机帧作为纹理返回。
public Texture GetImage() {
if (!Frame.CameraImage.AcquireCameraImageBytes().IsAvailable) {
return null;
}
var ptr = Frame.CameraImage.AcquireCameraImageBytes();
var bufferSize = ptr.Width * ptr.Height * 4;
if (_tex == null) {
_tex = new Texture2D(ptr.Width, ptr.Height, TextureFormat.RGBA32, false, false);
}
if (_bytes == null) {
_bytes = new byte[bufferSize];
}
Marshal.Copy(_ptr.Y, _bytes, 0, bufferSize);
_tex.LoadRawTextureData(_bytes);
_tex.Apply();
return _tex;
}
我在这段代码中遇到了两个问题。
首先,几秒钟后,我的应用程序因错误“无法获取相机图像而状态错误资源耗尽”而冻结。
第二个问题是,如果我确实设法显示图像,它不是彩色的,并且像这篇帖子 ARCore for Unity save camera image 一样重复四次。
是否有人有访问彩色 ARCore 图像的工作示例或知道我的代码有什么问题?
【问题讨论】:
标签: android unity3d computer-vision arcore