freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

多點(diǎn)觸摸畢業(yè)設(shè)計含外文翻譯-資料下載頁

2025-01-18 15:00本頁面
  

【正文】 ndex,在本例中應(yīng)為第N幀出現(xiàn)的C點(diǎn),這時thresh便發(fā)揮了作用。將d到C的距離distance與thresh相比較,當(dāng)thresh的值設(shè)置合適時,如果distance大于thresh則可以確定C并不是d的跟蹤匹配點(diǎn),這樣便可以排除因點(diǎn)擊事件造成的跟蹤匹配錯誤。那如何確定thresh的值呢?thresh的含義是相鄰兩幀 移動的最大值,根據(jù)這個定義便可以計算thresh的值。本論文使用的多點(diǎn)觸摸系統(tǒng)中紅外攝像機(jī)的工作頻率為60幀/s,也就是說每隔1/60秒攝像機(jī)就要拍照一次。經(jīng)過多次實驗證明,手指在本論文使用的多點(diǎn)觸摸平臺上一秒鐘內(nèi)移動的最大距離為30cm,則在1/60秒內(nèi)手指移動的距離為:1/60 * 30 = 現(xiàn)在來考慮一種當(dāng)兩個手指并攏的很近很近的極端情況。因為手指是有體積的,即使并攏的再近,兩手指間仍然有一定的距離存在。很顯然。本論文使用的多點(diǎn)觸摸顯視屏的分辨率為96像素/英寸,而1厘米 = , = 96**,按距離的平方計算為pixel2 = 358。因為圖像點(diǎn)在計算機(jī)中是用像素矩陣的形式來存放的,所以本文采用下面的語句來進(jìn)行驗證準(zhǔn)則的實現(xiàn):if(blob[j].distance[i]= 358)其中blob[j].distance[i]表示的是新觸點(diǎn)j到其index點(diǎn)之間的像素值的平方。經(jīng)過最小距離優(yōu)先算法為每一個新觸點(diǎn)尋找匹配的舊觸點(diǎn)后,如何判斷觸點(diǎn)的狀態(tài)呢?在這里,為觸點(diǎn)定義三種狀態(tài):消失的點(diǎn)、移動的點(diǎn)和新增加的點(diǎn)。當(dāng)某一舊觸點(diǎn)沒有被任何新觸點(diǎn)選為對應(yīng)的匹配跟蹤點(diǎn)時,換句話說在新一幀里沒有任何新觸點(diǎn)與之對應(yīng),則說明該舊觸點(diǎn)的匹配點(diǎn)在新一幀中沒有出現(xiàn),它的狀態(tài)是消失的點(diǎn)。這種情況下對應(yīng)的事件為彈起。檢驗一個舊觸點(diǎn)是否是消失的方法是:首先檢驗該舊觸點(diǎn)的序列號是由與某一個新觸點(diǎn)的index相同;若相同,再判斷舊觸點(diǎn)與此新觸點(diǎn)之間的像素距離平方是否小于thresh2。若有一個判斷語句的結(jié)果為否,則該舊觸點(diǎn)為消失的點(diǎn)??捎萌缦鲁绦蜻M(jìn)行判斷: for(int i=0。 i()。 i++) //遍歷所有的舊觸點(diǎn) { for(int j=0。jnewBlobsnBlobs。i++) //遍歷所有的新觸點(diǎn) { if(i==blob[j].index)//判斷是否有新觸點(diǎn)的index與此舊觸點(diǎn)的序列號相同 {if(blob[j].distance[i]= 358) //如果是判斷是否符合匹配點(diǎn)檢驗準(zhǔn)則…當(dāng)某一舊觸點(diǎn)被選為某一新觸點(diǎn)的最佳匹配點(diǎn)時,換句話說該舊觸點(diǎn)的匹配點(diǎn)在新一幀里仍然出現(xiàn)只是位置較上一幀發(fā)生了變化,所以該觸點(diǎn)的狀態(tài)是移動的點(diǎn),對應(yīng)的事件為移動事件。與判斷觸點(diǎn)消失的方法類似,仍然使用上面的的程序進(jìn)行判斷。當(dāng)兩個判斷語句的結(jié)果都為是時,則認(rèn)定該觸點(diǎn)為移動的點(diǎn)。當(dāng)某一個新觸點(diǎn)沒有找到與之匹配的舊觸點(diǎn)時,換句話說在上一幀該新觸點(diǎn)的匹配點(diǎn)沒有出現(xiàn),所以該觸點(diǎn)的狀態(tài)是新出現(xiàn)的點(diǎn),對應(yīng)的時間為點(diǎn)擊。新出現(xiàn)的點(diǎn)的判斷方法是:判斷每一個新觸點(diǎn)的ID,如果是1,則該觸點(diǎn)為新出現(xiàn)的點(diǎn)。這是因為所有新觸點(diǎn)ID的初始值均為1,一旦它找到匹配的舊觸點(diǎn)之后它的ID就會被賦值成相應(yīng)舊觸點(diǎn)的ID,若新觸點(diǎn)的ID仍為1便等價于沒有找到匹配的舊觸點(diǎn)。相應(yīng)的判斷程序如下:for(int i=0。 inewBlobsnBlobs。 i++) { if(newBlobsblobs[i].id== 1) …下面闡述最小距離優(yōu)先算法實現(xiàn)的基本步驟:1. 對于每一個新觸點(diǎn),計算新觸點(diǎn)與前一幀出現(xiàn)的所有舊觸點(diǎn)之間的距離,存放在結(jié)構(gòu)體元素blob[j].distance[i]中。2. 設(shè)置循環(huán) for(int j=0。 j()。 j++),()是舊觸點(diǎn)的個數(shù)。比較新觸點(diǎn)到所有舊觸點(diǎn)的距離,并角出一個距離最小的那個舊觸點(diǎn),將此舊觸點(diǎn)的序列號存放到結(jié)構(gòu)體元素blob[i].index中。blob[i].index表示距離第i個新觸點(diǎn)最近的舊觸點(diǎn)的序列號。3. 遍歷所有的舊觸點(diǎn),判定每一個舊觸點(diǎn)的序列號是否與某一個新觸點(diǎn)的index相同,若相同則繼續(xù)判斷舊觸點(diǎn)與該新觸點(diǎn)之間像素的距離平方是否小于thresh2。若每一個判斷的結(jié)果均為是,則認(rèn)定該新觸點(diǎn)為此舊觸點(diǎn)的匹配點(diǎn),此時的觸點(diǎn)狀態(tài)為移動的觸點(diǎn),對應(yīng)事件為移動,這時將舊觸點(diǎn)的ID賦給新觸點(diǎn)并進(jìn)行數(shù)據(jù)的傳遞;否則若有一個判斷的結(jié)果為否,則認(rèn)定這個舊觸點(diǎn)是消失的觸點(diǎn),對應(yīng)事件為彈起,為其ID賦值1。.4. 接下來判斷所有新觸點(diǎn)的ID,把那些ID的值為1的新觸點(diǎn)找出,標(biāo)定它們?yōu)樾鲁霈F(xiàn)的點(diǎn),對應(yīng)的事件為點(diǎn)擊。經(jīng)過上面4個步驟便完成了觸摸點(diǎn)的跟蹤,得到了觸摸點(diǎn)的三種狀態(tài)。實現(xiàn)最小距離觸點(diǎn)跟蹤算法的核心代碼如下:void BlobTracker::track(ContourFinder* newBlobs) //定義觸點(diǎn)跟蹤函數(shù){struct //定義結(jié)構(gòu)體分別來存放新觸點(diǎn)i到舊觸點(diǎn)j的距離和新觸點(diǎn)i的index {int index。 float distance[20]。 }blob[20]。 double x, y, xT, yT, dist。 //初始化所有新觸點(diǎn)的ID為1 for(int i=0。 inewBlobsnBlobs。i++) {newBlobsblobs[i].id=1。 //遍歷所有的舊觸點(diǎn)計算其與新觸點(diǎn)i的距離for(int j=0。 j()。 j++) { x = newBlobsblobs[i].。 y = newBlobsblobs[i].。 xT = trackedBlobs[j].。 yT = trackedBlobs[j].。 dist = (xxT)*(xxT)+(yyT)*(yyT)。 blob[i].distance[j]=dist。//找到與新觸點(diǎn)i最近的舊觸點(diǎn)jif(j==0){blob[i].index=0。} else if(distblob[i].distance[blob[i].index]) // {blob[i].index=j。} //用blob[i].index存放新觸點(diǎn)i的index } }//判斷觸點(diǎn)的狀態(tài)是消失還是移動 for(int i=0。 i()。 i++) { for(int j=0。jnewBlobsnBlobs。i++) { if(i==blob[j].index) { if(blob[j].distance[i]= 358) {//若判斷是移動的點(diǎn),進(jìn)行新舊觸點(diǎn)數(shù)據(jù)的傳遞newBlobsblobs[j].id = trackedBlobs[i].id。 newBlobsblobs[j].age = trackedBlobs[i].age。 newBlobsblobs[j].sitting = trackedBlobs[i].sitting。 … }} }}}for(int i=0。 inewBlobsnBlobs。 i++)//遍歷所有的新觸點(diǎn) { if(newBlobsblobs[i].id==1) //若ID為1,判斷其為新出現(xiàn)的點(diǎn) { // 添加新的跟蹤 newBlobsblobs[i].id=IDCounter++。 newBlobsblobs[i].downTime = ofGetElapsedTimef()。 … }} 最小距離觸點(diǎn)算法與KNN算法的比較,下面首先來比較最小距離優(yōu)先法在這兩點(diǎn)上較KNN算法的改進(jìn)與其他方面的不足。該方法需要多次的判斷來進(jìn)行插值比較,減慢了跟蹤的進(jìn)程。而最小距離優(yōu)先法為每一個新觸點(diǎn)找index的過程中只需進(jìn)行一次距離大小的比較,找到距離新觸點(diǎn)最近的index即可,大大簡化了角逐最優(yōu)匹配點(diǎn)的進(jìn)程。,本文使用的最小距離優(yōu)先法選取新觸點(diǎn)為訓(xùn)練集,為每一個新觸點(diǎn)找到距離它最近的舊觸點(diǎn)index。在判斷index是否是某一新觸點(diǎn)的跟蹤匹配點(diǎn)時,只需用兩個if判斷語句來判斷,免去了KNN算法中重新計算兩點(diǎn)距離并且比較距離的過程。這樣很大程度上縮減了程序的長度,加快了跟蹤的進(jìn)程。,但是由于進(jìn)行觸點(diǎn)匹配的判斷條件過于簡單,不能保證此算法在觸點(diǎn)距離非常接近的情況下或手勢非常復(fù)雜的條件下仍能保證跟蹤的精度。 KNN算法與最小距離跟蹤算法比較算法名稱KNN算法最小距離跟蹤算法校驗集的選取新觸點(diǎn)作為校驗集舊觸點(diǎn)作為校驗集判斷觸點(diǎn)匹配條件較為復(fù)雜較為簡單跟蹤速度滯后較為明顯滯后時間明顯減少精度較高在簡單手勢情況下精度較高,但當(dāng)手指距離太近時易出現(xiàn)漏跟蹤的錯誤在簡單手勢條件下,最小距離優(yōu)先算法較KNN算法簡潔高效的完成了觸點(diǎn)的跟蹤。 利用最小距離觸點(diǎn)跟蹤方法跟蹤觸點(diǎn) 5簡單的手勢識別本文簡要的定義了幾個圖片移動、放大和縮小的手勢,并參考相關(guān)資料利用ActionScript 。手勢就是用戶操作觸摸屏?xí)r所使用的一套規(guī)定動作。如何設(shè)計多點(diǎn)觸摸屏的交互動作,以便能夠發(fā)揮多點(diǎn)觸摸屏的優(yōu)點(diǎn)是非常重要的一個工作。由于目前多點(diǎn)觸摸屏還處于研究階段,業(yè)界還沒有一套成熟規(guī)范的多點(diǎn)觸摸動作。本次畢業(yè)設(shè)計參考了人機(jī)交互領(lǐng)域?qū)<褺ill Buxton的理論對多點(diǎn)觸摸的手勢進(jìn)行分類。下面就結(jié)合該理論介紹多點(diǎn)觸摸動作的定義。在最基本的層次上,可以將動作分類兩類:離散動作和連續(xù)動作。離散動作:離散動作就是不連續(xù)的觸發(fā)事件的動作,譬如點(diǎn)擊按鈕。最典型觸發(fā)離散動作的交互設(shè)備就是鍵盤。連續(xù)動作:連續(xù)動作就是連貫的觸發(fā)某個事件的動作,譬如移動鼠標(biāo)。像鼠標(biāo),軌跡球等交互設(shè)備都屬于此類。根據(jù)離散連續(xù)的定義,以兩個動作為例,對多點(diǎn)觸摸系統(tǒng)交互動作的設(shè)計和分類()。當(dāng)然表格中的觸摸動作種類還很少,只涉及到兩個觸摸點(diǎn)的交互動作,需要進(jìn)一步的完善。 多點(diǎn)觸摸事件分類觸摸點(diǎn)一觸摸點(diǎn)二動作名稱離散無手指按下,手指彈起,手指點(diǎn)擊連續(xù)無手指移動離散離散手指雙擊連續(xù)連續(xù)縮小對象,放大對象等 移動動作首先本文為手指移動做出如下定義[20]:單個手指在觸摸屏上移動或停止在觸摸屏上的狀態(tài)。從攝像機(jī)拍攝到的畫面來看,就是連續(xù)的序列幀中都會出現(xiàn)同一個觸摸點(diǎn),只是觸摸點(diǎn)的位置會發(fā)生改變。但通過運(yùn)動跟蹤算法檢查觸摸點(diǎn)的ID,可以確定這些點(diǎn)的序列對應(yīng)的都是同一個觸摸點(diǎn)。 放大縮小動作用戶的兩個手指觸摸在圖片對象上,然后兩個手指分別向外進(jìn)行擴(kuò)張的動作,這樣就實現(xiàn)了放大功能的實現(xiàn)。同理,兩個手指分別向內(nèi)進(jìn)行收縮的動作這樣就實現(xiàn)了對圖片的縮小。判斷放大和縮小動作的基本步驟是首先判斷兩個指點(diǎn)是否在同一操作對象上,若是則接著判斷在連續(xù)的序列幀中兩指點(diǎn)之間的距離。若兩指點(diǎn)之間的距離不斷增加,則判定為放大動作;當(dāng)兩指點(diǎn)之間的距離不斷減小,則判定為縮小動作。 多點(diǎn)觸摸應(yīng)用本文主要參考了GUI Group的多點(diǎn)觸摸應(yīng)用程序,利用ActionScript ——虛擬鍵盤。指點(diǎn)按在指定琴鍵上時指定琴鍵變紅,并發(fā)出對應(yīng)的音調(diào)。并可以對琴鍵做出放大,縮小和移動等操作。 虛擬鍵盤應(yīng)用界面 結(jié)  論本文改進(jìn)的多點(diǎn)觸摸系統(tǒng)底層軟件能夠成功完成圖像處理、觸點(diǎn)的檢測和跟蹤以及觸點(diǎn)信息的傳輸。本文基于大津法改進(jìn)的自適應(yīng)閾值方法可以在一定程度上簡化圖像預(yù)處理的步驟并且可以滿足在不同的光照條件下閾值的自動調(diào)整。本文基于最小距離優(yōu)先法改進(jìn)的觸摸點(diǎn)跟蹤算法也可以明顯的提高觸點(diǎn)的跟蹤速率并保持較高的精度。然后,本論文還存在很多不足。例如自適應(yīng)閾值算法的效果并不是十分理想,還存在很多錯分的現(xiàn)象。而且由于本文只仿真了在光度暗、中、亮三種情況下利用自適應(yīng)閾值二值化的圖像效果,而實際生活中的光線強(qiáng)弱千差萬別,還需要進(jìn)行大量的實驗來驗證并提高自適應(yīng)閾值方法的精度。同樣,對于本文改進(jìn)的最小距離觸點(diǎn)跟蹤方法雖然能滿足基本應(yīng)用中觸點(diǎn)跟蹤的準(zhǔn)確率,但是由于跟蹤條件比較簡單,所以不能保證在復(fù)雜手勢的情況下本方法仍能滿足同樣的精度。這種跟蹤方法同樣需要進(jìn)一步的驗證和改進(jìn)。對于圖像分割步驟中的自適應(yīng)閾值部分,除了對軟件算法進(jìn)行改進(jìn),也可以對硬件的設(shè)計進(jìn)行改良。因為在實驗中發(fā)現(xiàn)多點(diǎn)觸摸屏發(fā)出的紅外光分布很不均勻,這樣就造成了在某些區(qū)域由手指按壓所產(chǎn)生的光點(diǎn)很微弱,這對觸摸點(diǎn)的識別造成了很大干擾,使用戶需要花費(fèi)大量的時間進(jìn)行調(diào)試。本文建議使用紅外光分布強(qiáng)度均勻且適中的觸摸屏,這樣實驗的效果會有很大改善。 參 考 文 獻(xiàn)[1]Tomer Moscovich. Multitouch interaction[C]. Conference on Human Factors in Computing Systems, 2006:17751778.[2]P. Dietz and D. Leigh. Diamondtouch: a multiuser touch technology[C]. In UIST 01: Proceedings of the 14th annual ACM symposium on User interface software and technology, pages 219–226. ACM, 2001.[3]Reimer, Jeremy. A day on the Surface: a handson look at Microsoft’s new puting platform[EB]. , 2007.[4]Buxton Bill. Multitou
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1