專(zhuān)利名稱(chēng):一種三維立體鼠標(biāo)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息技術(shù)領(lǐng)域,特別是一種三維立體鼠標(biāo)。
二背景技術(shù):
眾所周知,現(xiàn)實(shí)世界是真正的三維立體世界,而現(xiàn)有的顯示設(shè)備絕大多數(shù)都只能顯示二維信息,并不能給人以深度感覺(jué)。為了使顯示的場(chǎng)景和物體具有深度感覺(jué)(也就是3D),人們?cè)诟鞣矫孢M(jìn)行了嘗試?;谌搜垭p目視差立體成像原理的三維立體顯示系統(tǒng)就是其中的一種,它通過(guò)使左右視差圖像分別進(jìn)入人們的左右眼,這兩幅視差圖經(jīng)視神經(jīng)中樞的融合反射以及視覺(jué)心理反應(yīng)從而使觀看者產(chǎn)生了三維立體感覺(jué)。利用該原理研制的光柵式三維自由立體顯示器,就是通過(guò)柱面或狹縫光柵的分光作用,將左右視差圖分別呈現(xiàn)給人的雙眼,從而使觀看者獲得三維立體視覺(jué)的。它不同于傳統(tǒng)的佩戴偏光眼鏡、液晶開(kāi)關(guān)眼鏡、互補(bǔ)色眼鏡等輔助工具的立體顯示器,且用戶(hù)可直接獲得十分逼真的三維立體效果,完全解放了人的雙眼,降低了由于佩戴輔助工具帶來(lái)的視疲勞,使用方便。
但是現(xiàn)在的光柵式自由立體顯示器上采用的仍然是常規(guī)鼠標(biāo),顯示出來(lái)的鼠標(biāo)還是平面的。本發(fā)明所要解決的技術(shù)問(wèn)題是克服傳統(tǒng)鼠標(biāo)只能在一個(gè)平面內(nèi)運(yùn)動(dòng)的問(wèn)題。根據(jù)自由立體顯示器的原理可知,要想能夠觀察到立體效果,就必須存在視差圖,即同一物體在不同圖像中的同名點(diǎn)存在視差。由于傳統(tǒng)鼠標(biāo)的單一性,不存在所需要的視差圖,所以不能夠在自由立體顯示器上看到立體效果,更不可能指向顯示出來(lái)的立體空間中的指定位置。而本發(fā)明實(shí)現(xiàn)的系統(tǒng)不僅可以實(shí)現(xiàn)立體鼠標(biāo),而且可以達(dá)到三維交互的目的。
三
發(fā)明內(nèi)容
本發(fā)明一種三維立體鼠標(biāo)是在自由立體顯示器上來(lái)實(shí)現(xiàn)立體鼠標(biāo),并且實(shí)現(xiàn)在三維空間中該立體鼠標(biāo)具有指向某一任意深度位置的功能。
本發(fā)明采用了下列技術(shù)方案解決了其技術(shù)難題-
1、相機(jī)陣列視差圖的獲取。自由立體顯示器是將多路視差圖進(jìn)行合成后來(lái)實(shí)現(xiàn)立體顯示的,常采用多鏡頭平行式擺放,形成相機(jī)陣列來(lái)獲取所需的視差圖,這些相機(jī)可以是真實(shí)的,也可以是三維建模軟件環(huán)境中提供的虛擬相機(jī)。如圖l所示是n個(gè)鏡頭(1122)的相機(jī)陣列,各光軸的方向大致平行,各CCD大致在同一直線上且間距大致相等,這樣采集得到的n(&2)路視差圖能夠保證相鄰的兩路視差圖之間的視差A(yù)x近似相等。圖1所示拍攝系統(tǒng)獲取的場(chǎng)景的視差圖如圖2所示,與鏡頭編號(hào)對(duì)應(yīng)分別為第1路視差圖、第2路視差圖、……、第n路視差圖。
2、立體鼠標(biāo)的實(shí)現(xiàn)。本發(fā)明實(shí)現(xiàn)立體鼠標(biāo)的過(guò)程由以下步驟組成。第一步建立n個(gè)模擬窗口。采用軟件的方式建立n個(gè)模擬窗口,其中模擬窗口的大小與所采用的自由立體顯示器窗口的大小相同;模擬窗口的分辨率與視差圖的分辨率相同;而且每個(gè)模擬窗口的;c^坐標(biāo)系也與自由立體顯示器窗口的坐標(biāo)系相同(以左上角為坐標(biāo)系的原
點(diǎn),向右水平方向?yàn)閤軸,向下豎直方向?yàn)樯佥S,坐標(biāo)系的單位長(zhǎng)度也相同,如圖3所示),自由立體顯示器如果采用多路視差圖就要建立多個(gè)上述的模擬窗口,與多路視差圖一一對(duì)應(yīng)。建立的n個(gè)模擬窗口如圖4所示,與每一路視差圖對(duì)應(yīng),模擬窗口的編號(hào)分別為l'、 2'、……、m'。
第二步在模擬窗口中全屏顯示各視差圖。在建立的每一個(gè)模擬窗口中用軟件方式讀入
所對(duì)應(yīng)的那一路視差圖,然后全屏顯示,如圖5的r、 2'、……、《'所示。
第三步生成鼠標(biāo)。首先,利用軟件獲取模擬窗口I'中鼠標(biāo)所在位置的實(shí)際坐標(biāo)(x,力,然后在其它每個(gè)模擬窗口中找到相同的坐標(biāo)點(diǎn)Oc,力,最后在每個(gè)模擬窗口中的坐標(biāo)點(diǎn)(jc,力處調(diào)用系統(tǒng)鼠標(biāo)圖標(biāo)從而在每個(gè)模擬窗口中都產(chǎn)生一個(gè)鼠標(biāo),當(dāng)移動(dòng)硬件鼠標(biāo)的時(shí)候,每個(gè)
模擬窗口的鼠標(biāo)都會(huì)同時(shí)移動(dòng)。如圖6的1'、 2'、……、"'所示,在每一個(gè)模擬窗口的左下
角相同坐標(biāo)處產(chǎn)生了 一個(gè)相同的鼠標(biāo)。
第四歩鼠標(biāo)指向待測(cè)物體。挪動(dòng)鼠標(biāo)使模擬窗口l'中鼠標(biāo)指向所要指示的物體,此時(shí),其余模擬窗口中的鼠標(biāo)并沒(méi)有指向?qū)?yīng)于該物體的同名點(diǎn)。這是因?yàn)?,所有模擬窗口中的鼠
標(biāo)的坐標(biāo)相同且多路視差圖之間是存在視差的,而是與所要指示的物體之間依次相差(n-l)Ax, Ax是該物體在相鄰兩幅視差圖中的同名點(diǎn)之間所對(duì)應(yīng)的視差。如圖7的1'、 2'、……、"'所示,模擬窗口l'中鼠標(biāo)指向物體A上的a點(diǎn)時(shí),其余模擬窗口中鼠標(biāo)并沒(méi)有指向物體A上的a點(diǎn),而是相鄰兩幅視差圖的a點(diǎn)之間距離相差A(yù)x。
第五步使鼠標(biāo)產(chǎn)生視差。以模擬窗口l'中鼠標(biāo)的坐標(biāo)(x, y)為基準(zhǔn)、視差圖中的像素為單位,調(diào)整其余模擬窗口中鼠標(biāo)的水平位置。設(shè)視差圖中像素的單位長(zhǎng)度為Am,此時(shí)讓模擬窗口 2'中鼠標(biāo)的坐標(biāo)每次水平移動(dòng)的長(zhǎng)度為Am ,直到窗口 2'中鼠標(biāo)水平位置平移量等于這兩路視差圖中同名點(diǎn)的視差A(yù)x為止。再以模擬窗口2'中鼠標(biāo)對(duì)應(yīng)的坐標(biāo)(x+A/n, y)為基準(zhǔn),調(diào)整模擬窗口 3'中鼠標(biāo)的坐標(biāo),直到窗口 3'中鼠標(biāo)水平位置平移量等于這兩路視差圖中同名點(diǎn)的視差A(yù)x為止,以此類(lèi)推,對(duì)所有模擬窗口中的鼠標(biāo)位置進(jìn)行調(diào)整。這樣,所有模擬窗口中的鼠標(biāo)都指向了所要指示的同一物體。如圖8的1'、 2'、……、"'所示,此時(shí)相鄰兩個(gè)模擬窗口中鼠標(biāo)所對(duì)應(yīng)的視差為Ax 。
第六步記錄鼠標(biāo)視差。將第五步各模擬窗口的狀態(tài)記錄下來(lái)形成新的視差圖,其中的鼠標(biāo)包含有視差信息。如圖9的1"、 2"、……、""所示,記錄的每個(gè)模擬窗口中鼠標(biāo)指針都指向了物體A上的a點(diǎn)的狀態(tài),形成了新的n路視差圖。
第七步合成顯示。將形成的新的n路視差圖進(jìn)行合成并在自由立體顯示器上進(jìn)行顯示,如圖IO所示。此時(shí),觀測(cè)者將看到鼠標(biāo)指示到浮出自由立體顯示的物體A上的a點(diǎn),如圖
11所示,其中D為顯示屏,4、 A和4、 52位置分別代表圖1中物體A、 B被相機(jī)q和&拍
攝得到的視差圖經(jīng)合成之后在顯示屏上的位置。
要使鼠標(biāo)指向物體B上的b點(diǎn),則重復(fù)上述第四到第七個(gè)步驟就可實(shí)現(xiàn),觀測(cè)者可以看到鼠標(biāo)指向浮出自由立體顯示的物體B上的b點(diǎn),而且位于浮出自由立體顯示的物體A的后方。上述七個(gè)步驟是動(dòng)態(tài)實(shí)時(shí)的,通過(guò)不斷的調(diào)整鼠標(biāo)的視差就可使常規(guī)鼠標(biāo)指向自由立體顯示器上不同空間位置的物體。立體鼠標(biāo)的實(shí)現(xiàn)的過(guò)程中,步驟四、五、六極為重要,解決了鼠標(biāo)指針視差的問(wèn)題,通過(guò)第七步,就可以在自由立體顯示器上看到立體鼠標(biāo)的效果,而且可以指向觀察者所觀測(cè)到的空間位置。
本發(fā)明中所用的視差圖的垂直視差、水平視差須在一定的范圍,如果垂直視差、水平視差過(guò)大,則在自由立體顯示器上合成顯示就不能觀察到立體效果,最佳的狀態(tài)為垂直視差為0,水平視差在自由立體顯示器能夠合成觀察到立體效果的范圍內(nèi)。如果拍攝得到的視差圖垂直、水平視差過(guò)大,就要采用軟件處理的方式對(duì)視差圖進(jìn)行像素級(jí)別的縮放和平移,直至符合要求。當(dāng)圖像進(jìn)行縮放時(shí)(如將圖像在不同大小顯示器上進(jìn)行顯示),改變的僅僅是像素的單位長(zhǎng)度并沒(méi)有改變視差A(yù)x對(duì)應(yīng)的像素個(gè)數(shù)。
為了減少計(jì)算誤差和不同觀察者的立體感覺(jué)不同帶來(lái)的判斷失誤,本發(fā)明中采用彩色立體圖像匹配技術(shù)在合成顯示之前在視差圖中對(duì)待測(cè)的空間點(diǎn)進(jìn)行標(biāo)注,使合成顯示后待測(cè)空間點(diǎn)的位置更加明顯。四
圖l陣列相機(jī)拍攝任意場(chǎng)景示意圖
圖2陣列相機(jī)拍攝得到的多路視差圖
圖3模擬窗口坐標(biāo)示意圖
圖4建立的n個(gè)模擬窗口l'、 2'、……、"'的示意圖
圖5在模擬窗口中顯示視差圖的示意圖
圖6在模擬窗口中生成鼠標(biāo)示意圖
圖7鼠標(biāo)指向待測(cè)物體示意圖
圖8使鼠標(biāo)產(chǎn)生視差示意圖
圖9記錄具有視差的鼠標(biāo)圖形圖10合成顯示示意圖
圖11顯示的立體效果示意圖五具體實(shí)施例方式
第一步將8個(gè)CCD攝像機(jī)固定在平臺(tái)上,攝像機(jī)拍攝的分辨率為630x350,保持各光軸的方向大致平行,并使各個(gè)CCD大致在同一直線上且間距大致相等;用數(shù)據(jù)線把各個(gè)CCD和PC機(jī)中的圖像采集卡連接起來(lái),將22寸光柵式立體顯示器直接和PC機(jī)相連。
第二步:將拍攝獲得的8路視差圖進(jìn)行預(yù)處理,調(diào)整視差使其適于在自由立體顯示器上顯示,然后利用立體圖像匹配技術(shù)標(biāo)示出所有同名點(diǎn)的視差。
第三步建立8個(gè)模擬窗口,大小尺寸與22寸光柵式立體顯示器相同,分辨率為視差圖的分辨率630x350,坐標(biāo)系與光柵式立體顯示器相同,其坐標(biāo)系方向如圖3所示。8個(gè)模擬窗口分別與8路處理過(guò)的視差圖相對(duì)應(yīng),然后每個(gè)模擬窗口中全屏顯示所對(duì)應(yīng)的那一路視差圖,如圖5的1'、 2'、……、"'所示。
第四步生成立體鼠標(biāo)。得到模擬窗口中當(dāng)前鼠標(biāo)的坐標(biāo)",y),如(O, 1050),然
后找到每個(gè)模擬窗口中對(duì)應(yīng)的坐標(biāo)(O, 1050),在該坐標(biāo)處調(diào)用系統(tǒng)鼠標(biāo)圖標(biāo)。這樣在
每個(gè)模擬窗口中產(chǎn)生了一個(gè)鼠標(biāo),如圖6的1'、 2'、……、"'所示。
第五步:挪動(dòng)鼠標(biāo)使模擬窗口l'中鼠標(biāo)指向物體A上的a點(diǎn),如圖7的1'所示。第六步通過(guò)鍵盤(pán)上的左右鍵調(diào)整鼠標(biāo)視差,使其余每一個(gè)模擬窗口中的鼠標(biāo)指針指向
物體A上的a點(diǎn),如圖8所示。
第七步記錄鼠標(biāo)視差,形成新的視差圖,如圖9的1"、 2"、……、""所示。第八步合成顯示觀察,判斷鼠標(biāo)是否已經(jīng)指向了浮出于自由立體顯示器前面的物
體A上的a點(diǎn),如圖ll所示;如果沒(méi)有指向a點(diǎn),則重復(fù)第五、六、七步,直到觀察到鼠標(biāo)
指針指向a點(diǎn)。
至此,三維立體鼠標(biāo)及其攝影測(cè)量系統(tǒng)已經(jīng)介紹完畢,但本發(fā)明并不僅局限于具體實(shí)施方式
中提到的八鏡頭數(shù)碼相機(jī)以及光柵式自由立體顯示器,其它兩個(gè)鏡頭或任意多鏡頭配合自由立體顯示終端實(shí)現(xiàn)的三維立體鼠標(biāo)同樣在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種三維立體鼠標(biāo),它是在自由立體顯示器的基礎(chǔ)上,采用計(jì)算機(jī)軟件編程從而使常規(guī)鼠標(biāo)具有三維立體功能,其特征在于通過(guò)計(jì)算機(jī)編程首先建立多個(gè)模擬窗口,每個(gè)模擬窗口與自由立體顯示器采用的多路視差圖一一對(duì)應(yīng),并在模擬窗口中全屏顯示各視差圖;接著在每個(gè)模擬窗口中都產(chǎn)生一個(gè)常規(guī)鼠標(biāo);然后在第一個(gè)模擬窗口挪動(dòng)鼠標(biāo)使其指向所要指示的物體,并根據(jù)同名點(diǎn)間視差使其余模擬窗口中的鼠標(biāo)指向該同一物體;最后記錄下具有視差的模擬窗口,形成新的含有鼠標(biāo)的視差圖,將這些視差圖合成并顯示于自由立體顯示器上,實(shí)現(xiàn)的三維立體鼠標(biāo)就具有了指向任意空間位置的功能。
2、如權(quán)利要求1所述的一種三維立體鼠標(biāo),其特征還在于建立的多個(gè)模擬窗口與自由 立體顯示器采用的視差圖數(shù)量相同,并一一對(duì)應(yīng),其大小與所采用的自由立體顯示器窗口的 大小相同,分辨率與視差圖的分辨率一致,且每個(gè)模擬窗口的x炒坐標(biāo)系也與自由立體顯示 器窗口的坐標(biāo)系相同。
3、 如權(quán)利要求l所述的一種三維立體鼠標(biāo),其特征還在于每個(gè)模擬窗口中都產(chǎn)生一個(gè)鼠 標(biāo),然后利用軟件獲取模擬窗口中鼠標(biāo)所在位置的實(shí)際坐標(biāo)(x,力,并在其它每個(gè)模擬窗口中 找到相同的坐標(biāo)點(diǎn)(x,力,最后在每個(gè)模擬窗口中的坐標(biāo)點(diǎn)(x,力處調(diào)用系統(tǒng)鼠標(biāo)圖標(biāo),從而 在每個(gè)模擬窗口中都產(chǎn)生一個(gè)鼠標(biāo)。
4、 如權(quán)利要求1所述的一種三維立體鼠標(biāo),其特征還在于挪動(dòng)鼠標(biāo)使第一個(gè)模擬窗口中 鼠標(biāo)指向所要指示的物體,并根據(jù)同名點(diǎn)間視差量使其余模擬窗口中的鼠標(biāo)指向該同一物體。
5、 如權(quán)利要求1所述的一種三維立體鼠標(biāo),其特征還在于記錄下具有視差的模擬窗口從 而形成新的含有鼠標(biāo)的視差圖,通過(guò)合成并在自由立體顯示上顯示時(shí),鼠標(biāo)具有立體功能。
全文摘要
一種三維立體鼠標(biāo),它是在自由立體顯示器的基礎(chǔ)上,采用計(jì)算機(jī)軟件編程從而使常規(guī)鼠標(biāo)具有三維立體功能。它首先通過(guò)計(jì)算機(jī)編程建立多個(gè)模擬窗口,每個(gè)模擬窗口與自由立體顯示器采用的多路視差圖一一對(duì)應(yīng),并在模擬窗口中全屏顯示各視差圖。接著在每個(gè)模擬窗口中都產(chǎn)生一個(gè)常規(guī)鼠標(biāo),然后在第一個(gè)模擬窗口挪動(dòng)鼠標(biāo)使其指向所要指示的物體,并根據(jù)同名點(diǎn)間視差使其余模擬窗口中的鼠標(biāo)指向該同一物體。最后,記錄下具有視差的模擬窗口,形成新的含有鼠標(biāo)的視差圖,將這些視差圖合成并顯示于自由立體顯示器后,可實(shí)現(xiàn)三維立體鼠標(biāo)。本發(fā)明通過(guò)產(chǎn)生并記錄鼠標(biāo)的視差信息從而克服了傳統(tǒng)的鼠標(biāo)只能在一個(gè)平面內(nèi)運(yùn)動(dòng)的問(wèn)題,而使其可在自由立體顯示器上指向指定的空間位置。
文檔編號(hào)G06F3/033GK101655747SQ20091006034
公開(kāi)日2010年2月24日 申請(qǐng)日期2009年8月14日 優(yōu)先權(quán)日2009年8月14日
發(fā)明者劉效勇, 方恩博, 李大海, 王瓊?cè)A 申請(qǐng)人:四川大學(xué)