多標識AR例程分析 二)

2021-07-07 06:30:19 字數 1328 閱讀 2432

這是例程的結果:

1:例程多目標跟蹤:一系列標識基於相對位置關係,當至少乙個標識可見可以計算出其他標識在相機座標系中的位置。

基於******.c實現的程式:

1):在init函式中,匯入多目標配置檔案,這個標識檔案包含一系列標識和他們在乙個固定的座標系統中確切的位置(包含標識的角點,一系列標識平面的中心,乙個任意位置)

這個檔案可以從乙個全域性位置計算出所有標識的轉換矩陣。而armultigettransmat(marker_info, marker_num, config)) 不給出每個標識在相機座標系統中的位置,但是給出在相機座標系統中乙個固定座標系統的位置,和每乙個標識相對於這個固定座標系統的位置。所以即時不檢測到標識,也可以顯示在那個標識上的三維目標。

2:在繪製函式中,使用計算出的固定座標系和標識的位置顯示立方體。檢測到標識是visible就顯示為藍色,否則,顯示為紅色。

3:在多標識中,乙個重要的結構體:armultimarkerinfot

armultieachmarkerinfot * marker

int marker_num

double trans [3][4]

int prevf

double transr [3][4]

第乙個引數是多標識的一系列標識,也是乙個結構體,和單個的標識資訊結構體一致;就相當於單標識的匯入標識檔案;

第二個引數是標識的數量。

第三個引數是在多標識座標系中的相機位置;

第四個引數是這個標識是否可視;

第五個引數是最後的位置,我理解為真實相機位置和虛擬相機位置的轉換矩陣;而標識相對於虛擬相機的位置的轉換矩陣在第乙個引數結構體中的轉換矩陣。

4:鍵盤響應:

t:鍵入乙個閾值用於檢測標識;意思是閾值可控;

d:開始debug模式,就是清除了顏色,無論是真實影象還是虛擬目標,虛擬目標按照標識資訊中的角點位置畫乙個方框。並在標識上畫乙個四方線體,沒有面。

5:一些函式說明:

argdispimage(dataptr,0,0);這就是直接顯示影象,然後在影象上顯示虛擬物體;

argdispimage(dataptr,1,1);這個除了和上面一樣外,還在乙個小視窗只顯示真實影象,不新增虛擬物體;

KSDK USB 例程分析

在usb example裡面檔案 lite為精簡版,省略了很多usb枝幹上的功能,保留了usb通訊部分的主幹功能,我使用的是全功能版。函式 board initpins 中,主要是port以及gpio相關的初始化。1 使能port的時鐘,當外設時鐘沒有開啟時,程式不能讀出外設暫存器的值,同時也不能使...

AR多標籤識別程式2

1 basic.h 檔案部分 include include include 函式原型宣告 獲取空調的溫度相關資訊 char getairinfo char gethotchannelinfo char getcoldchannelinfo char getcabinetinfo char getp...

opencv例程分析(1)

show image include include opencv2 opencv.hpp include opencv2 core core.hpp include opencv2 highgui highgui.hpp using namespace cv using namespace std...