999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于紅外視頻定位交互系統(tǒng)的鼠標(biāo)模擬方法

2014-09-23 03:16:32查文錦孫孝彬趙太飛
電子設(shè)計(jì)工程 2014年2期
關(guān)鍵詞:系統(tǒng)

查文錦,孫孝彬,趙太飛,高 波

(1.西安理工大學(xué) 自動化與信息工程學(xué)院,陜西 西安 710048;2.河北邯鄲永年海軍四七二三工廠五車間,河北 邯鄲 057150)

基于紅外視頻定位交互系統(tǒng)的鼠標(biāo)模擬方法

查文錦1,孫孝彬1,趙太飛1,高 波2

(1.西安理工大學(xué) 自動化與信息工程學(xué)院,陜西 西安 710048;2.河北邯鄲永年海軍四七二三工廠五車間,河北 邯鄲 057150)

本論文針對紅外視頻定位采用端口操作驅(qū)動程序組件(WinIo)模擬鼠標(biāo)事件的局限性,提出了用win32 API函數(shù)的方法實(shí)現(xiàn)鼠標(biāo)驅(qū)動,解決了因內(nèi)外部數(shù)據(jù)沖突導(dǎo)致鼠標(biāo)失控的問題,并實(shí)現(xiàn)WinIo難以做到的雙擊事件,擴(kuò)展了紅外視頻定位系統(tǒng)的功能,為實(shí)現(xiàn)基于視頻的多點(diǎn)觸控提供解決方案。

人機(jī)交互;指示點(diǎn)定位;坐標(biāo)轉(zhuǎn)換;鼠標(biāo)模擬

基于視頻定位[1]實(shí)現(xiàn)人機(jī)交互是在專門的應(yīng)用程序的支持下,構(gòu)造一個(gè)大屏幕、交互式的商務(wù)會議或教學(xué)環(huán)境,它將顯示幕布變成了“觸摸屏”。首先,電腦將屏幕的視頻信號通過投影機(jī),投射到幕布上,通過攝像頭采集幕布上的圖像信息送到電腦;然后,利用軟件計(jì)算,就可以將幕布上的觸摸位置與電腦的鼠標(biāo)信息相對應(yīng)。為配合各種應(yīng)用軟件在大屏互動操作,更好的應(yīng)用于教學(xué),會議,指揮,遠(yuǎn)程協(xié)作等各種場合,實(shí)現(xiàn)傳統(tǒng)方式所無法實(shí)現(xiàn)的互動動態(tài)的多媒體操作,改變傳統(tǒng)的教學(xué)模式,將理論教學(xué)和實(shí)踐有機(jī)的結(jié)合在一起,調(diào)動學(xué)生的多種感官參與學(xué)習(xí),提升教學(xué)的質(zhì)量,提高教學(xué)效率,擴(kuò)大教學(xué)規(guī)模[2],本文提出了應(yīng)用編程接口(API)鼠標(biāo)模擬方案,并對模擬雙擊做出了理論研究和實(shí)驗(yàn)分析。

1 視頻定位人機(jī)交互系統(tǒng)原理

1.1 視頻定位人機(jī)交互系統(tǒng)組成

系統(tǒng)的整體設(shè)計(jì)主要劃分為以下幾個(gè)模塊,各個(gè)模塊之間相互聯(lián)系,形成一個(gè)完整的人機(jī)交互系統(tǒng)。為實(shí)現(xiàn)鼠標(biāo)事件模擬的前期準(zhǔn)備,將系統(tǒng)的模塊劃分為如圖1所示。

圖1 系統(tǒng)的模塊組成圖Fig.1 The constitution of system modules

由圖中可以看出,該模塊的設(shè)置自下而上形成了一個(gè)數(shù)據(jù)流,同時(shí)通過交互設(shè)置模塊進(jìn)行參數(shù)的設(shè)置,與用戶交流。其中,該模塊又根據(jù)功能劃分為若干個(gè)功能子模塊,各個(gè)子模塊的功能分別為:

1)視頻圖像獲取與顯示子模塊(實(shí)現(xiàn)該子模塊功能封裝C++類為CVideo):利用攝像頭對顯示畫面的圖像進(jìn)行連續(xù)不斷的拍攝,軟件上利用該模塊從攝像頭中連續(xù)不斷的獲取視頻圖像,在設(shè)置模塊需要對攝像機(jī)的位置進(jìn)行可視化校正,并將圖像顯示在對話框上的相應(yīng)控件上。

2)圖像畸變校正子模塊(實(shí)現(xiàn)該子模塊功能封裝的C++類為CCamCalibration):在圖中,該子模塊是以虛線框顯示的,表明該功能是一個(gè)可選項(xiàng),主要是為了應(yīng)對攝像頭的鏡頭畸變,只需提取攝像頭標(biāo)定的參數(shù)[3]即可進(jìn)行畸變校正。

3)圖像分析與指示點(diǎn)提取子模塊(實(shí)現(xiàn)該子模塊功能封裝的 C++為 CCoordinateInImage和 CCoordinateTrans):通過攝像頭拍攝計(jì)算機(jī)顯示的純白色背景圖像、白色背景加3個(gè)頂點(diǎn)圖像和棋盤格圖像。對采集到的三幅圖像進(jìn)行分析,提取出棋盤格在拍攝圖像中的位置,即代表了顯示畫面在拍攝圖像中的位置。并在獲得位置信息的基礎(chǔ)上自動生成一幅索引圖。當(dāng)紅外光屏上有動作時(shí),通過opencv圖像處理算法[4]可以從攝像頭拍攝的視頻圖像中找到指點(diǎn)的區(qū)域,并計(jì)算輸出一個(gè)指點(diǎn)坐標(biāo)。

4)坐標(biāo)轉(zhuǎn)換與動作測試子模塊(實(shí)現(xiàn)該子模塊功能封裝的C++為CCoordinateTrans和PointDetect):利用顯示畫面在圖像中的位置信息,以及索引圖像及提取的小矩形坐標(biāo)等信息,對計(jì)算出的坐標(biāo)點(diǎn)進(jìn)行轉(zhuǎn)換,將圖像坐標(biāo)系中的坐標(biāo)轉(zhuǎn)換到屏幕坐標(biāo)系中的實(shí)際坐標(biāo),在測試對話框中進(jìn)行動作測試,及時(shí)調(diào)整模擬鼠標(biāo)的各項(xiàng)參數(shù)。

5)鼠標(biāo)模擬(實(shí)現(xiàn)該子模塊功能封裝的C++類為CMouseSimu):通過對圖像的分析以及指示點(diǎn)的提取得到手指位置在屏幕中的坐標(biāo),調(diào)用windows函數(shù)來實(shí)現(xiàn)相應(yīng)功能。

6)交互設(shè)置模塊:該模塊由若干對話框組合構(gòu)成,這些對話框?qū)⒁陨细髯幽K聯(lián)系起來,向用戶提供了視頻畫面顯示,參數(shù)設(shè)置,位置校正等功能,以提高該系統(tǒng)的環(huán)境適應(yīng)性,同時(shí)也提高了鼠標(biāo)事件模擬的準(zhǔn)確度。

1.2 指示點(diǎn)提取計(jì)算方法

在紅外光屏上提取指示點(diǎn)的原理如圖2所示(其中1-紅外激光器,3-投影幕布,2-激光器投射的紅外光屏)。攝像頭套上濾光片后可濾除可見光干擾,當(dāng)手指或者其他不透光的物體在紅外光屏上有動作時(shí),就會出現(xiàn)明顯的光斑,很容易被攝像頭捕捉到。當(dāng)有多個(gè)光斑出現(xiàn)時(shí),會選擇連通域面積最大光斑的質(zhì)心坐標(biāo)作為鼠標(biāo)模擬操作的坐標(biāo)。在求取指示點(diǎn)坐標(biāo)前,需要求取圖像x方向與y方向的步長,對圖像進(jìn)行二值化以及形態(tài)學(xué)濾波,貼標(biāo)簽等計(jì)算處理,按照步長逐個(gè)尋找棋盤格上的角點(diǎn)[5],如(1)式。

式中 f(x,y)為貼標(biāo)簽后圖像在 x,y 點(diǎn)的灰度值,點(diǎn)(xi,yi),i=1~3是標(biāo)記區(qū)域的中心坐標(biāo)值,ni為圖像中灰度值為i的點(diǎn)的總個(gè)數(shù)。

圖2 指示點(diǎn)采集原理圖Fig.2 The principle of indicator point collection

標(biāo)定棋盤格上的角點(diǎn)后便可進(jìn)行指示點(diǎn)坐標(biāo)的計(jì)算,在調(diào)試的過程中發(fā)現(xiàn),采集角點(diǎn)要屏蔽掉棋盤格之外的角點(diǎn),否則會對下步坐標(biāo)轉(zhuǎn)換產(chǎn)生很大的影響。由于采集圖像和計(jì)算機(jī)屏幕畫面的坐標(biāo)系是相互獨(dú)立的,所以提取到的指示點(diǎn)坐標(biāo)不能進(jìn)行鼠標(biāo)模擬動作.為了實(shí)現(xiàn)所見即所得,需要建立了兩個(gè)坐標(biāo)系之間的映射關(guān)系來獲取準(zhǔn)確的計(jì)算機(jī)屏幕畫面的坐標(biāo),用轉(zhuǎn)換后的坐標(biāo)來進(jìn)行鼠標(biāo)事件的模擬。使用四點(diǎn)定位法[6]來計(jì)算,假設(shè)小矩形rect11是棋盤格中序號為11(從 1 開始)的矩形,如(2)式,ABCD 是該矩形的 4 個(gè)點(diǎn),lx,ly是該矩形的列與行的長度,T是待轉(zhuǎn)換坐標(biāo)的點(diǎn),分別是水平和垂直方向的比例值,即可求得點(diǎn)T在計(jì)算機(jī)屏幕中的真實(shí)坐標(biāo)(xscreen,yscreen)。

1.3 鼠標(biāo)事件模擬方法

windows提供的API函數(shù)可以直接向目標(biāo)程序發(fā)送消息,常用的有SendMessage和 PostMessage,模擬鼠標(biāo)消息要用PostMessage函數(shù),用該函數(shù)向系統(tǒng)消息隊(duì)列中壓入一個(gè)自定義的鼠標(biāo)動作消息即可模擬鼠標(biāo)操作,但用這種方法模擬鼠標(biāo)并不是對所有程序都有效的,對于某些程序會禁止用戶對它使用模擬鼠標(biāo)程序。 或者利用函數(shù)SendInput來模擬鼠標(biāo)事件,該函數(shù)合成鍵盤事件和鼠標(biāo)事件,用來模擬鼠標(biāo)或者鍵盤操作。事件將被插入在鼠標(biāo)處理隊(duì)列里面,這是一種比較底層的模擬方法。 也可利用全局鉤子(Hook)[7]等方式進(jìn)行模擬,鉤子過程是Windows中提供的一種用以替換DOS下“中斷”的系統(tǒng)機(jī)制。在對特定的系統(tǒng)事件進(jìn)行hook后,操作系統(tǒng)在傳遞消息時(shí),將目的消息先傳遞給該鉤子過程,對該消息進(jìn)行檢查,這時(shí)程序就能在第一時(shí)間對該事件做出響應(yīng)。在程序中設(shè)置一個(gè)鼠標(biāo)鉤子過程,截獲所有的鼠標(biāo)消息,然后進(jìn)行判斷是否是目的消息,如果不是則將該消息放行交由系統(tǒng)處理,否則根據(jù)需求進(jìn)行鼠標(biāo)事件的模擬。在WinIo驅(qū)動級上模擬是通過加載一個(gè)內(nèi)核模式的設(shè)備驅(qū)動程序,利用幾種底層編程技巧,使得Windows應(yīng)用程序可以直接對I/O端口和物理內(nèi)存進(jìn)行存取,從而繞過了Windows系統(tǒng)的保護(hù)機(jī)制。由于直接的硬件端口讀寫使得很多程序無法對其進(jìn)行屏蔽,但是實(shí)驗(yàn)結(jié)果表明該方法也具有一定的局限性,就是驅(qū)動級的模擬是硬件相關(guān)的,因而兼容性不高。

在對以上幾種方法進(jìn)行測試比較,發(fā)現(xiàn)利用API函數(shù)mouse_event進(jìn)行模擬效率最高,兼容性較好,例如用該函數(shù)結(jié)合MOUSEEVENTF_LEFTDOWN和MOUSEEVENTF_LEFTUP即可模擬一次單擊鼠標(biāo)左鍵的過程。模擬過程為:先讓光標(biāo)移動到觸點(diǎn)位置,當(dāng)光標(biāo)停下時(shí)觸發(fā)點(diǎn)擊鼠標(biāo)左鍵的事件。當(dāng)手指離開紅外光屏,即檢測不到光斑時(shí)調(diào)用觸發(fā)彈鍵事件。為模擬鼠標(biāo)左鍵雙擊,需要使用時(shí)間函數(shù)來計(jì)時(shí)。當(dāng)手指離開光屏面時(shí)觸發(fā)計(jì)時(shí),再次檢測到光斑停止計(jì)時(shí),計(jì)算出時(shí)間差。若時(shí)間差小于某個(gè)數(shù)時(shí)相當(dāng)于在光屏上點(diǎn)擊了兩次。在對時(shí)間差的調(diào)整過程中發(fā)現(xiàn),當(dāng)時(shí)間差設(shè)為500 ms時(shí),測試的效果最好。為加強(qiáng)對目標(biāo)的精確點(diǎn)擊,又定義一個(gè)距離變量,計(jì)算第一次點(diǎn)擊的地方到第二次點(diǎn)擊的地方的距離。當(dāng)這個(gè)距離小于250個(gè)像素范圍時(shí),可以確定點(diǎn)擊的目標(biāo)。

2 實(shí)驗(yàn)結(jié)果及分析

在實(shí)際環(huán)境中利用該系統(tǒng)進(jìn)行了測試,如圖3,測試在室內(nèi)環(huán)境下完成,系統(tǒng)測試結(jié)果如下。

圖3 系統(tǒng)測試圖Fig.3 System test

上面四幅圖分別是系統(tǒng)運(yùn)行彈出的人機(jī)交互對話框。首先要調(diào)整攝像頭的位置使之能拍攝全部幕布圖像,如圖(a);再拍攝保存顯示屏顯示的棋盤格,通過分析棋盤格可標(biāo)定計(jì)算機(jī)顯示屏,如圖(b);對棋盤格進(jìn)行圖像處理,標(biāo)出棋盤格上的角點(diǎn),這些角點(diǎn)將用于計(jì)算指示點(diǎn)的坐標(biāo),如圖(c);最后對指點(diǎn)檢測進(jìn)行設(shè)置,調(diào)整各項(xiàng)參數(shù)使之適應(yīng)當(dāng)前的環(huán)境,如圖(d)。綜上,交互設(shè)置模塊大大提高了系統(tǒng)運(yùn)行的環(huán)境適應(yīng)性。

對模擬雙擊之間的時(shí)間間隔的最佳值的計(jì)算做了統(tǒng)計(jì),如圖 4。

圖4 時(shí)間差-模擬雙擊成功率的關(guān)系圖Fig.4 The relationship between time difference and the success rate of double-click

可看出當(dāng)兩次單擊之間的時(shí)間間隔在200 ms時(shí),雙擊模擬成功率較低;大于200 ms后,雙擊模擬成功率開始上升;在500 ms時(shí),雙擊的模擬成功率達(dá)到最高;大于500 ms后雙擊模擬成功率開始下降。這是因?yàn)橄到y(tǒng)程序處理每次單擊需要一定的時(shí)延,當(dāng)時(shí)間間隔為200 ms時(shí),相當(dāng)于在一次單擊處理時(shí)延里模擬雙擊,結(jié)果被判為單擊,造成雙擊模擬成功率低。隨著時(shí)延增大,在單擊時(shí)延里處理雙擊事件的概率開始降低,使雙擊模擬成功率得到提高。而兩次單擊的時(shí)間間隔大于500 ms時(shí),這兩次單擊會被分配到兩個(gè)單擊處理時(shí)延中,被判定為兩次單擊。時(shí)間間隔越大被分配到兩個(gè)時(shí)延的概率就越大,模擬成功率開始下降。所以500 ms是最佳時(shí)間間隔。

屏幕分辨率就是屏幕上顯示的像素個(gè)數(shù),分辨率越高,像素的數(shù)目越多。在屏幕尺寸一樣的情況下,分辨率越高,顯示效果就越精細(xì)和細(xì)膩。在實(shí)驗(yàn)中,對于屏幕分辨率和光標(biāo)定位的準(zhǔn)確度之間的關(guān)系進(jìn)行了測試分析,如圖5,可以看出,屏幕分辨率越高,模擬光標(biāo)的移動延時(shí)越小,光標(biāo)定位準(zhǔn)確度越高,這是因?yàn)閳D像處理要先采集圖像信息,圖像越細(xì)膩,采集到的指示點(diǎn)越精確,處理得到的指示點(diǎn)坐標(biāo)越接近目的坐標(biāo),定位的準(zhǔn)確度就越高,人手直接對幕布進(jìn)行操作的效率也得到提高,能滿足精度以及實(shí)時(shí)性要求。

圖5 屏幕分辨率—光標(biāo)定位準(zhǔn)確度關(guān)系圖Fig.5 The relationship between screen resolution and the cursor positioning accuracy

3 結(jié)束語

本文首先闡述了紅外交互系統(tǒng)的構(gòu)建,包括系統(tǒng)的硬件與軟件環(huán)境,并介紹各個(gè)模塊的劃分以及模塊間的關(guān)聯(lián),重點(diǎn)闡明了系統(tǒng)的最終目標(biāo),即鼠標(biāo)事件模擬,使用API函數(shù)避開在驅(qū)動級上進(jìn)行模擬,又克服了一般應(yīng)用軟件禁止鼠標(biāo)模擬的缺點(diǎn),在此基礎(chǔ)上完成了雙擊事件。最后對整個(gè)系統(tǒng)進(jìn)行了測試,測試結(jié)果證明系統(tǒng)能很好的完成各項(xiàng)功能。基于視頻定位的人機(jī)交互系統(tǒng)因其較低的成本、更自然的交互方式和對多媒體技術(shù)更充分的利用,在未來將會有更為廣闊的發(fā)展前景。未來的工作將向多點(diǎn)觸控展開,構(gòu)造基于多點(diǎn)觸控的大屏幕教學(xué)、娛樂系統(tǒng)。多點(diǎn)觸控是在同一顯示界面上的多點(diǎn)或多用戶的交互操作模式,摒棄了鍵盤、鼠標(biāo)的單點(diǎn)操作方式,利用視頻定位方式將能很大程度上的降低其成本。

[1]李巖.視頻定位人機(jī)交互系統(tǒng)的研究與實(shí)現(xiàn) [D].西安:西安理工大學(xué),2012.

[2]吳愷.基于紅外感應(yīng)的交互式白板系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長沙:國防科學(xué)技術(shù)大學(xué),2009.

[3]Gary Bradski,Adrian Kaebler.學(xué)習(xí)OpenCV (中文版)[M].于仕琪,劉瑞禎,譯.北京:清華大學(xué)出版社,2009.

[4]于仕琪.OpenCV教程——基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,2007.

[5]王玉珠.圖像角點(diǎn)檢測算法研究[D].重慶:重慶大學(xué),2007.

[6]崔如春,譚海燕.電阻式觸摸屏的坐標(biāo)定位與筆畫處理技術(shù)[J].儀表技術(shù)與傳感器,2004(8):49-50.

CUI Ru-chun,TAN Hai-yan. Interface and software processing technology for resistive touch screen[J].Instrument Technique and Sensor,2004(8):49-50.

[7]孫鑫.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.

Human-computer interaction system based on infrared video positioning

ZHA Wen-jin1, SUN Xiao-bin1, ZHAO Tai-fei1, GAO Bo2
(1.Faculty of Automation and Information Engineering,Xi'an University of Technology,Xi’an 710048, China;2.The Fifth Workshop of 4723 Factory,Hebei Yongnian Navy, Handan 057150, China)

There are some limitations when using port operation driver components (WinIo) to simulate mouse events in infrared video positioning technology.According to the above problem,the method of win32 API function to achieve mouse driver is proposed.Using this method,the mouse out of control caused by internal and external data collision is solved and the double-click event which is difficult to do using WinIo function is achieved.Analysis and results show that the functions of infrared video positioning system are expanded and the method can provide solution to realize the multi-point touch based on the infrared video positioning.

human-computer interaction;indicate a point positioning;coordinate transformation;mouse simulation

TP37

A

1674-6236(2014)02-0165-03

2013-05-29 稿件編號:201305288

國家自然科學(xué)基金資助項(xiàng)目(61001069);西安市技術(shù)轉(zhuǎn)移促進(jìn)工程重大項(xiàng)目(CX12166);陜西省自然科學(xué)基礎(chǔ)研究計(jì)劃項(xiàng)目(2011JQ8028);陜西省教育廳產(chǎn)業(yè)化培育項(xiàng)目(2012JC19)

查文錦(1990—),男,安徽黃山人。研究方向:通信。

猜你喜歡
系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
半沸制皂系統(tǒng)(下)
FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統(tǒng) 德行天下
PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 露脸国产精品自产在线播| 老熟妇喷水一区二区三区| 国产91丝袜| 欧美精品在线观看视频| 久久特级毛片| 婷婷六月综合网| 亚洲免费三区| 天堂网国产| 日韩欧美国产成人| 扒开粉嫩的小缝隙喷白浆视频| 欧美亚洲欧美区| 欧美一区二区人人喊爽| 亚洲中文字幕久久精品无码一区| 中文无码日韩精品| 91精品国产91久无码网站| 欧美日韩国产精品va| 欧美日韩国产系列在线观看| 成人在线天堂| 尤物成AV人片在线观看| AV色爱天堂网| 国国产a国产片免费麻豆| 国产成人亚洲欧美激情| 亚洲人成网站色7799在线播放 | 99久久性生片| 日韩AV手机在线观看蜜芽| 老司机久久99久久精品播放| 亚洲综合九九| 91小视频在线观看| 久草国产在线观看| 伊人网址在线| 奇米影视狠狠精品7777| 欧美精品伊人久久| 久久精品国产精品一区二区| 在线观看国产精品日本不卡网| 国产99在线| 日韩中文欧美| 亚洲欧美在线精品一区二区| 无码AV高清毛片中国一级毛片| 在线另类稀缺国产呦| 亚洲国产精品一区二区第一页免 | 99久久精品国产精品亚洲 | 四虎永久在线| 国产丰满成熟女性性满足视频| 免费av一区二区三区在线| 婷婷综合缴情亚洲五月伊| 亚洲AV无码精品无码久久蜜桃| 亚洲69视频| 男女男精品视频| 国产精品嫩草影院视频| 日韩精品无码免费一区二区三区| 国产成人a在线观看视频| 中文字幕 欧美日韩| 久久黄色免费电影| 免费无码在线观看| 伊人无码视屏| 精品视频免费在线| 国产v精品成人免费视频71pao| 99re在线视频观看| 国产精品亚洲一区二区三区在线观看| 亚洲 成人国产| 精品无码一区二区三区电影| 国产毛片不卡| 亚洲欧洲日产国码无码av喷潮| 久久人搡人人玩人妻精品| 欧美激情二区三区| 亚洲天堂网在线观看视频| 欧美特级AAAAAA视频免费观看| 在线看国产精品| 中文成人在线| 丁香婷婷在线视频| 亚洲欧美日韩视频一区| 华人在线亚洲欧美精品| 国产成人精品男人的天堂| 成人综合网址| 最新国产网站| 国产精品19p| 少妇精品网站| 无码人中文字幕| 凹凸国产分类在线观看| 亚洲一级毛片| 亚洲欧美精品一中文字幕| 亚洲无码视频喷水|