• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Vuforia Unity Camera Image Access

mysql 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

本文描述了两种方法获取QCAR相机在unity的图像。 The Image class 有两个选项获取摄像机图像从unity(没有增加)。一个是使用 Image 的类。这就像本地的版本。首先,使用 CameraDevice 注册所需的图像式。SetFrameFormat方法: CameraDevice.Instance.SetFrameFo

本文描述了两种方法获取QCAR相机在unity的图像。

The Image class

有两个选项获取摄像机图像从unity(没有增加)。一个是使用Image的类。这就像本地的版本。首先,使用CameraDevice注册所需的图像格式。SetFrameFormat方法:

CameraDevice.Instance.SetFrameFormat(Image.PIXEL_FORMAT.RGB888, true);

QCARBehaviour运行Start方法调用此方法使用Unity脚本排序特征在一次更新回调

然后,您可以使用CameraDevice.GetCameraImage方法检索图像。您可以从ITrackerEventHandler.OnTrackablesUpdated回调来确保你获取最新的相机的图像匹配当前帧。经常检查以确保相机的图像是无效的,因为它可以登记注册后的图像变得可用图像格式需要几帧。

这是完整的脚本

本文来源gaodaimacom搞#^代%!码&网*

using UnityEngine;using System.Collections;public class CameraImageAccess : MonoBehaviour, ITrackerEventHandler{    private Image.PIXEL_FORMAT m_PixelFormat = Image.PIXEL_FORMAT.RGB888;    private bool m_RegisteredFormat = false;    private bool m_LogInfo = true;    void Start()    {        QCARBehaviour qcarBehaviour = (QCARBehaviour) FindObjectOfType(typeof(QCARBehaviour));        if (qcarBehaviour)        {            qcarBehaviour.RegisterTrackerEventHandler(this);        }    }    public void OnTrackablesUpdated()    {        if (!m_RegisteredFormat)        {            CameraDevice.Instance.SetFrameFormat(m_PixelFormat, true);            m_RegisteredFormat = true;        }        if (m_LogInfo)        {            CameraDevice cam = CameraDevice.Instance;            Image image = cam.GetCameraImage(m_PixelFormat);            if (image == null)            {                Debug.Log(m_PixelFormat + " image is not available yet");            }            else            {                string s = m_PixelFormat + " image: \n";                s += "  size: " + image.Width + "x" + image.Height + "\n";                s += "  bufferSize: " + image.BufferWidth + "x" + image.BufferHeight + "\n";                s += "  stride: " + image.Stride;                Debug.Log(s);                m_LogInfo = false;            }        }    }}

Background Texture Access

Image类提供了相机的像素作为一个字节数组。这对一些图像处理任务是有用的,但有时最好获得作为一个OpenGL纹理图像。您可以使用BackgroundTextureAccess示例演示的方法。在这里,而不是让Vuforia渲染摄像机图像每一帧,你注册一个Texture2D对象充满相机像素每一帧。见Readme。txt附带的示例(在资产文件夹)两种方式渲染相机图像使用这种方法。


参考资料

https://developer.vuforia.com/resources/dev-guide/unity-camera-image-access


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Vuforia Unity Camera Image Access

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址