iOS Vuforia ImageTargets官方demo的學(xué)習(xí)心得交流

? ? ? ? ?首先來(lái)說(shuō)一下我們公司的需求:有雷同的碼農(nóng)可以往下看看政,我們公司比較坑想讓我寫(xiě)一個(gè)AR識(shí)別博物館藏品功能這個(gè)比較蛋疼,(就是類(lèi)似與掃二維碼然后彈出詳細(xì)信息的功能)抄罕。

當(dāng)我看了官方demo的時(shí)候我發(fā)現(xiàn)有兩個(gè)可以研究允蚣,說(shuō)明一下我研究的是VuforiaSamples-6-2-61和vuforia-sdk-ios-6-2-6官方下載


這個(gè)是demo跑起來(lái)的首頁(yè)

demo運(yùn)行步驟:

1.demo識(shí)別圖片都在【vuforia-sdk-ios-6-2-6 ->media】文件里面(對(duì)于大神這些都不是個(gè)事,但對(duì)于我這種菜菜就是這個(gè)事)

里面有沒(méi)有功能的識(shí)別圖片呆贿,對(duì)應(yīng)的識(shí)別就可以了嚷兔,再不行你就不要開(kāi)發(fā)了回家種地吧。

2.ImageTargets功能做入,這個(gè)功能官方的是上傳一張圖片冒晰,識(shí)別成功以后會(huì)顯示一個(gè)3D模型,對(duì)于顯示模型后面我給改成跳轉(zhuǎn)到另一個(gè)Controller竟块。(所以這個(gè)功能比較符合我們公司的需求)


3VuMark功能這個(gè)比較神奇壶运,我之所以沒(méi)有采用,問(wèn)題就處在.svg圖上浪秘,我們美工不會(huì)蒋情,我也沒(méi)辦法埠况,下面就介紹ImageTargets功能里面的一些簡(jiǎn)單方法

官方的初始化方法啥的就不說(shuō)了,照著寫(xiě)就行了棵癣,我說(shuō)一個(gè)最關(guān)鍵的方法在ImageTargetsEAGLView.mm文件中


4.這個(gè)方法是AR相機(jī)不停地識(shí)別掃描辕翰,然后渲染的方法

- (void) renderFrameWithState:(const Vuforia::State&) state projectMatrix:(Vuforia::Matrix44F&) projectionMatrix {}

在介紹之前我還要簡(jiǎn)單的說(shuō)一下使用方法:在識(shí)別界面手指雙擊會(huì)彈出菜單有三個(gè)Switch其中Flash就是開(kāi)啟閃光燈,其他兩個(gè)就是在這個(gè)方法面用到的狈谊。

上面方法中有

if (offTargetTrackingEnabled) {

}else {}這一類(lèi)的如果Switch(ExtendTracking)這個(gè)按鈕出于開(kāi)啟狀態(tài)喜命,程序就會(huì)走if里面否則就是else,默認(rèn)是else.

(const Vuforia::State&) state:這個(gè)是識(shí)別跟蹤到數(shù)據(jù)狀態(tài)(個(gè)人理解,具體是啥我也不知道)里面包含了的畴,你上傳到高通服務(wù)器上圖片的信息渊抄。

(Vuforia::Matrix44F&) projectionMatrix:這個(gè)是將要顯示的模型矩陣。(就是3D模型)


解釋一下這個(gè)for循環(huán): ? ? ?

for (int i = 0; i < state.getNumTrackableResults(); ++i) {【當(dāng)你去識(shí)別你的圖片的時(shí)候state才會(huì)不為空f(shuō)or循環(huán)才會(huì)被執(zhí)行丧裁,否則里面的代碼是不會(huì)被執(zhí)行的】

其中state.getNumTrackableResults()這可是一個(gè)好東西呀是相機(jī)跟蹤到的所有結(jié)果的數(shù)量(個(gè)人理解)

打印NSLog(@"state%d",state.getNumTrackableResults());這個(gè)你會(huì)發(fā)現(xiàn)跟你上傳到服務(wù)器上面識(shí)別的圖片數(shù)量一樣护桦,此時(shí)作為開(kāi)發(fā)人員你就應(yīng)該有想法了。

const Vuforia::TrackableResult* result = state.getTrackableResult(i);這一句

const Vuforia::Trackable& trackable = result->getTrackable();

這兩句就是得到當(dāng)前正在識(shí)別的可追蹤的對(duì)象數(shù)據(jù)

打印NSLog(@"state %s",trackable.getName());

NSLog(@"state %d",trackable.getId());你會(huì)發(fā)現(xiàn)你上傳的圖片名字和id,這正是你正在掃描的那張圖片OK煎娇,

現(xiàn)在一個(gè)重大的問(wèn)題解決了二庵,首先你知道協(xié)議方法是哪一個(gè),如何區(qū)分你所上傳的圖片缓呛。

5.下面介紹一下

識(shí)別以后每次回調(diào)更新AR的方法催享,這方法自然在ImageTargetsViewController.mm控制器中

我理解成數(shù)據(jù)更新

這個(gè)里面人家原有的看不懂,你可以不用動(dòng)哟绊,直接在下面將上面的for循環(huán)寫(xiě)在后面

報(bào)錯(cuò)

會(huì)報(bào)錯(cuò)原因是少了頭文件#import<Vuforia/TrackableResult.h>添加以后應(yīng)該就沒(méi)啥問(wèn)題了因妙,

然后你就可以在控制區(qū)中拿到你想要區(qū)分?jǐn)?shù)據(jù)。

6.下面就可以實(shí)現(xiàn)我們自己的東西了首先你要干的事情就不要再demo定義的方法里面實(shí)現(xiàn)了票髓,他掃描的速度很快攀涵,異步啥的人家已經(jīng)搞好,你現(xiàn)在要做的就是再開(kāi)一個(gè)線程洽沟,然后知道如何啟動(dòng)AR掃描以故,如何關(guān)閉AR,暫停等裆操。

啟動(dòng):NSError *error = [[NSError alloc]init];

[vapp startAR:Vuforia::CameraDevice::CAMERA_DIRECTION_BACK error:&error];

停止:在- (void)viewWillDisappear:(BOOL)animated里面你可以參考一下怒详,demo里面的

暫停:- (void) pauseAR {}調(diào)這個(gè)

恢復(fù):- (void) resumer{}調(diào)這個(gè)

7.最后重點(diǎn)是Trackable.h文件這里面都是識(shí)別到的信息。你都可以用trackable.getId()這種方式訪問(wèn)踪区。

時(shí)間匆忙來(lái)不及細(xì)細(xì)解說(shuō)昆烁,都是我個(gè)人的看法,要是有不對(duì)的地方朽缴,請(qǐng)大家多多幫我指正善玫,我是一個(gè)小菜菜,請(qǐng)不要用大神的標(biāo)準(zhǔn)來(lái)衡量,記住我很菜菜茅郎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蜗元,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子系冗,更是在濱河造成了極大的恐慌奕扣,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掌敬,死亡現(xiàn)場(chǎng)離奇詭異惯豆,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)奔害,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)楷兽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人华临,你說(shuō)我怎么就攤上這事芯杀。” “怎么了雅潭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵揭厚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我扶供,道長(zhǎng)筛圆,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任椿浓,我火速辦了婚禮太援,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好摄杂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布诈泼。 她就那樣靜靜地躺著,像睡著了一般捅儒。 火紅的嫁衣襯著肌膚如雪液样。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天巧还,我揣著相機(jī)與錄音鞭莽,去河邊找鬼。 笑死麸祷,一個(gè)胖子當(dāng)著我的面吹牛澎怒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阶牍,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼喷面,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼星瘾!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起惧辈,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤琳状,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后盒齿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體念逞,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年边翁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翎承。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡符匾,死狀恐怖叨咖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情待讳,我是刑警寧澤芒澜,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站创淡,受9級(jí)特大地震影響痴晦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜琳彩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一誊酌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧露乏,春花似錦碧浊、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至劳较,卻和暖如春驹止,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背观蜗。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工臊恋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人墓捻。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓抖仅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撤卢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容