Qualcomm AR之目標識別、跟蹤

Qualcomm AR的Unity3D代碼中,在QCARManagerImpl類獲得圖像,並進行識別、跟蹤物體,得到目標物體的姿態(位置和旋轉量)。所有的更新操作,在QCARManagerImpl.Update()中實現。


主要使用到的相關的數據結構

ImageHeaderData圖像頭結構體

public struct ImageHeaderData

 {

     public int width;

     public int height;

     public int stride;

     public int bufferWidth;

     public int bufferHeight;

     public int format;

     public int reallocate;

     public int updated;

     public IntPtr data;

 }


FrameState結構體包含了識別跟蹤到的數據

private struct FrameState

 {

     public int numTrackableResults;

     public int numVirtualButtonResults;

     public int frameIndex;

     public IntPtr trackableDataArray;

     public IntPtr vbDataArray;

     public int numWordResults;

     public IntPtr wordResultArray;

     public int numNewWords;

     public IntPtr newWordDataArray;

     public IntPtr videoModeData;

 }

numTrackableResults:找到的跟蹤目標個數

numVirtualButtonResults:虛擬按鍵的個數

frameIndex:幀的索引號

trackableDataArray:跟蹤結果數據(指向TrackableResultData結構體)

vbDataArray:虛擬按鍵跟蹤結果

numWordResults:識別文字個數

wordResultArray:識別跟蹤的文字結果數據


TrackableResultData結構體包含了圖像識別跟蹤的數據

public struct TrackableResultData

 {

     public PoseData pose;

     public TrackableBehaviour.Status status;

     public int id;

 }

pose:pose數據

status:跟蹤狀態,爲如下枚舉中的一個值

public enum Status

 {

     NOT_FOUND = -1,

     UNKNOWN = 0, ///< The state of the TrackableResult is unknown

     UNDEFINED = 1,///< The state of the TrackableResult is not defined

     DETECTED = 2,///< The TrackableResult was detected

     TRACKED = 3   ///< The TrackableResult was tracked

 }

id:目標的id號


PoseData結構體包含了姿態

public struct PoseData

 {

     public Vector3 position;

     public Quaternion orientation;

 }


position:位置

orientation:旋轉量


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章