我目前正在使用Rajawali (https://github.com/Rajawali/RajawaliVuforia)开发我的安卓增强现实应用程序。在这里,我可以改变目标,如帧标记,图像目标和它的工作完美。但是我想在我的应用程序中实现用户定义的目标。rajawali中是否有任何选项或功能可用于实现用户定义的目标。谢谢你的帮助
发布于 2015-06-12 03:48:47
使用Image类
CameraDevice.SetFrameFormat方法注册所需的图像格式:CameraDevice.Instance.SetFrameFormat(Image.PIXEL_FORMAT.RGB888, true);Start方法后调用此方法。Update回调中执行一次。CameraDevice.GetCameraImage方法检索图像。ITrackerEventHandler.OnTrackablesUpdated回调中执行此操作。这样,您可以确保检索与当前帧匹配的最新相机图像。始终确保相机图像不是空的,因为在注册图像格式后,图像可能需要几个帧才能可用。
下面是完整的脚本:
using UnityEngine;
using System.Collections;
public class CameraImageAccess : MonoBehaviour
{
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.RegisterTrackablesUpdatedCallback(OnTrackablesUpdated);
}
}
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;
}
}
}
}https://stackoverflow.com/questions/30777415
复制相似问题