菜鸟在线Unity3d教程:如何获取摄像机图像?

本文详细介绍了在Unity3D中获取摄像机图像的两种方法:一是通过image类,包括注册图像格式、等待图像可用及获取图像;二是利用OpenGL的纹理,通过Texture2D对象在每一帧填充摄像头像素。这两种方法适用于不同的图像处理场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  本文介绍了两种在Unity中获得相机图像的方法:

  1.使用image 类

  2.使用图像作为OpenGL的纹理

  使用image类

  使用image类更像是原生版本。

  1.注册所需的图像格式使用CameraDevice.SetframeFormat 方法:

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

  2.在QCARBehaviour运行之后调用此方法

  使用Unity的脚本排序功能,或在一个更新的回调中做一次。

  3.使用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.Regi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值