欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

生成立體圖像的方法和裝置的制作方法

文檔序號(hào):6414817閱讀:249來源:國(guó)知局
專利名稱:生成立體圖像的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種通過二維圖像數(shù)據(jù)生成三維圖像數(shù)據(jù)的方法和裝置。
背景技術(shù)
人類能夠從視覺上感知三維空間中的三維對(duì)象。這種能力被稱為立體視覺。立體視覺發(fā)生在人腦根據(jù)分別由右眼和左眼接收到的兩幅圖像識(shí)別出一個(gè)三維對(duì)象時(shí)。換句話說,要發(fā)生立體視覺,右眼和左眼都必須各自接收一幅圖像。
已經(jīng)開發(fā)出一種稱為立體視圖的技術(shù),在這種技術(shù)中圖像處理在一幅二維圖像上進(jìn)行,以便觀察者能夠把處理后的二維平面圖像當(dāng)作一幅三維圖像來感知。立體視圖涉及一種圖像處理技術(shù),該技術(shù)修改一幅二維平面圖像的圖像數(shù)據(jù)以便為右眼和左眼各自生成圖像數(shù)據(jù)。具體地,通過計(jì)算關(guān)于一幅圖像中所描繪的一個(gè)對(duì)象(主題)的一個(gè)雙眼視差,并且根據(jù)視差分別移動(dòng)右眼和左眼方向中的圖像的象素(點(diǎn))的位置,來生成右眼和左眼各自的圖像數(shù)據(jù)。
例如,視差是通過表示一個(gè)對(duì)象的遠(yuǎn)(或近)度的一個(gè)值(以下稱為一個(gè)Z-值)來確定的,而這個(gè)值是根據(jù)對(duì)象的飽和度、亮度和色調(diào)中的至少一項(xiàng)來計(jì)算的。例如,日本專利JP2002-123842A公布了一種根據(jù)原始2D圖像的飽和度和亮度來確定一個(gè)Z-值的方法。具體地,該方法包括(a)根據(jù)圖像數(shù)據(jù)的飽和度確定每個(gè)象素的Z-值的步驟;(b)確定圖像中包含的一個(gè)或多個(gè)對(duì)象的一條或多條等高線的步驟;(c)計(jì)算對(duì)象內(nèi)的所有象素的Z-值的一個(gè)均值的步驟,以及(d)確定該均值是對(duì)象的一個(gè)Z-值的步驟。關(guān)于對(duì)象的一個(gè)視差是根據(jù)該對(duì)象的Z-值來確定的。
此外,為了改進(jìn)對(duì)生成的3D圖像的感知,更改了接近對(duì)象的象素的飽和度以便“模糊”對(duì)象的一個(gè)邊緣。要注意這種模糊過程取決于一個(gè)經(jīng)驗(yàn)規(guī)則,即一個(gè)對(duì)象在一幅圖像中的位置越遙遠(yuǎn),其圖像越模糊(即其飽和度越低),而對(duì)象的位置越近,其圖像越銳利(即其飽和度越高)。這是因?yàn)榭諝庵械幕覊m等模糊對(duì)象,使得遙遠(yuǎn)的對(duì)象的邊緣往往較纖細(xì)。鄰近的對(duì)象的數(shù)目和飽和度增加,并且對(duì)象的邊緣更粗,從而看起來更銳利。
但是,存在不符合上述規(guī)則的圖像,例如遠(yuǎn)處描繪了一片明亮的天空而近處描繪了一片深色的森林的一幅圖像。在這種情況下,根據(jù)其計(jì)算Z-值的規(guī)則不表示對(duì)象的真實(shí)深度。因此不可能用生成的立體圖像再現(xiàn)正確的視差,從而給了觀察者一個(gè)不自然的印象。
此外,在一片陰影或強(qiáng)光籠罩著一個(gè)對(duì)象的某個(gè)特定部分的情況下,換句話說即在對(duì)象內(nèi)的飽和度變化相當(dāng)大的情況下,不可能計(jì)算對(duì)象的真實(shí)的Z-值。因此生成的立體圖像給觀察者的印象是只有籠罩的部分被局部地凸出(或凹進(jìn))。在這種情況下,由于不能精確地確定對(duì)象的邊緣,因此模糊過程不能為改進(jìn)3D圖像的可塑性做出貢獻(xiàn)。
另外,在對(duì)象中的一個(gè)Z-值變得較大的強(qiáng)光部分中,該部分的視差也相應(yīng)地被估計(jì)得過高。因此,相會(huì)出現(xiàn)這樣一種現(xiàn)象當(dāng)生成一幅立體圖像時(shí),原始2D圖像中的鄰近的象素在相反的水平方向上移位了。此現(xiàn)象被稱為象素交叉,它會(huì)在生成的立體圖像中生成一個(gè)失真的部分。因此生成的立體圖像的質(zhì)量降低到無法被觀察者欣賞的地步。在多個(gè)對(duì)象重疊的位置上這種現(xiàn)象發(fā)生得尤其嚴(yán)重。在這種位置上很容易發(fā)生圖像失真;從而觀察者相當(dāng)難以實(shí)現(xiàn)對(duì)立體圖像的自然感知。
如上所述,由于在現(xiàn)有技術(shù)中不可能根據(jù)原始圖像數(shù)據(jù)計(jì)算一個(gè)正確的Z-值以生成一幅立體圖像,因此難以生成一幅逼真的立體圖像。

發(fā)明內(nèi)容
在考慮到上述背景技術(shù)的情況下產(chǎn)生了本發(fā)明,以提供一種給予觀察者自然可塑性印象的生成立體圖像數(shù)據(jù)的方法,以及一種適應(yīng)于該方法的生成立體圖像數(shù)據(jù)的裝置。本發(fā)明是申請(qǐng)人對(duì)給予人類強(qiáng)烈的可塑性印象的條件進(jìn)行持續(xù)研究的結(jié)果。
根據(jù)本發(fā)明的一種生成一幅立體圖像的方法的特征在于包括一個(gè)計(jì)算步驟,該步驟根據(jù)象素的圖像數(shù)據(jù)計(jì)算象素的Z-值,象素形成一幅圖像,每個(gè)Z-值被分配給一個(gè)象素,并且每個(gè)Z-值表示對(duì)應(yīng)于所述象素的一個(gè)對(duì)象的深度;一個(gè)調(diào)整步驟,該步驟用不同于一個(gè)目標(biāo)象素的另一個(gè)象素的Z-值調(diào)整計(jì)算步驟中獲得的目標(biāo)象素的Z-值;以及一個(gè)生成步驟,該步驟根據(jù)一個(gè)目標(biāo)象素的調(diào)整后的Z-值確定目標(biāo)象素的一個(gè)位移量,并且水平移動(dòng)目標(biāo)象素所述確定的位移量,以便生成右眼和左眼的圖像。通過調(diào)整Z-值生成了一幅向觀察者提供自然可塑性的立體圖像。
在一個(gè)首選實(shí)施例中,在計(jì)算步驟中分別根據(jù)對(duì)R、G和B敏感的錐形細(xì)胞的比率來確定權(quán)重,其中錐細(xì)胞位于人眼的視網(wǎng)膜中。
在調(diào)整步驟中有可能調(diào)整象素的Z-值使得對(duì)應(yīng)于在一幅原始圖像中位置靠后的一個(gè)對(duì)象的一個(gè)象素的Z-值可以取的一個(gè)單個(gè)步長(zhǎng)表示的深度深于對(duì)應(yīng)于在原始圖像中位置靠前的一個(gè)對(duì)象的一個(gè)象素的Z-值可以取的一個(gè)單個(gè)步長(zhǎng)。
在調(diào)整步驟中有可能獲得包含一個(gè)目標(biāo)象素的一個(gè)區(qū)域內(nèi)的象素的Z-值的均值,并且用獲得的均值替換目標(biāo)象素的Z-值。
此外,在調(diào)整步驟中有可能獲得圖像中的所有象素的Z-值的分布以及圖像中所有象素的均值,并且用獲得的均值校正分布的偏差。
此外,在調(diào)整步驟中有可能參考計(jì)算步驟中計(jì)算出的象素的Z-值以識(shí)別出由圖像數(shù)據(jù)表示的圖像中的至少一個(gè)對(duì)象,并且根據(jù)位于對(duì)應(yīng)于識(shí)別出的對(duì)象的一個(gè)區(qū)域內(nèi)的一個(gè)象素的Z-值來調(diào)整目標(biāo)象素的Z-值。
此外,在調(diào)整步驟中有可能根據(jù)由用戶指定的一個(gè)參數(shù)值來確定Z-值量化的步長(zhǎng)、計(jì)算出的Z-值的上限和下限中的任何一項(xiàng)。
此外,在所述調(diào)整步驟中有可能通過比較一個(gè)區(qū)域內(nèi)的一個(gè)象素的Z-值與另一個(gè)區(qū)域內(nèi)的一個(gè)象素的Z-值來分析圖像中的象素的Z-值的趨勢(shì)。并且當(dāng)分析的結(jié)果與一個(gè)預(yù)定的條件相符合時(shí),在生成步驟中顛倒目標(biāo)象素的位移量和目標(biāo)象素的Z-值之間的一個(gè)數(shù)量關(guān)系。
在一個(gè)首選實(shí)施例中,立體圖像生成裝置可能進(jìn)一步包括一個(gè)獲得由多幅圖像組成的移動(dòng)圖像的步驟,并且其中根據(jù)每幅圖像生成一幅立體圖像以便實(shí)時(shí)地生成對(duì)應(yīng)于移動(dòng)圖像的立體圖像。
根據(jù)本發(fā)明的一種生成一幅立體圖像的立體圖像生成裝置的特征在于包括一個(gè)計(jì)算裝置,用于根據(jù)多個(gè)象素的圖像數(shù)據(jù)計(jì)算多個(gè)象素的Z-值,所述多個(gè)象素形成一幅圖像,每個(gè)Z-值被分配給一個(gè)象素,并且每個(gè)Z-值表示對(duì)應(yīng)于所述一個(gè)象素的一個(gè)對(duì)象的深度;一個(gè)調(diào)整裝置,用于用不同于一個(gè)目標(biāo)象素的另一個(gè)象素的Z-值調(diào)整計(jì)算步驟中獲得的目標(biāo)象素的Z-值;以及一個(gè)生成裝置,用于根據(jù)一個(gè)目標(biāo)象素的調(diào)整后的Z-值確定目標(biāo)象素的一個(gè)位移量,并且水平移動(dòng)目標(biāo)象素所述確定出的位移量,以便生成右眼和左眼的圖像。該裝置可能進(jìn)一步包括一個(gè)獲得裝置,用于從一個(gè)用戶獲得所述調(diào)整裝置中所使用的一個(gè)參數(shù)。
本發(fā)明還提供一個(gè)計(jì)算程序,用于使一臺(tái)計(jì)算機(jī)行使立體圖像生成裝置的功能。該程序可能儲(chǔ)存在多種類型的儲(chǔ)存介質(zhì)中,并且通過一個(gè)網(wǎng)絡(luò)下載,以便安裝在計(jì)算中。


圖1是描繪根據(jù)本發(fā)明的第一實(shí)施例的一個(gè)3D圖像生成裝置的框圖。
圖2是描繪由一個(gè)3D圖像繪制應(yīng)用程序所顯示的一個(gè)屏幕的一個(gè)例子的示意圖。
圖3是描繪一個(gè)設(shè)置對(duì)話面板的一個(gè)配置的一個(gè)例子的示意圖。
圖4是描繪根據(jù)本發(fā)明的第一實(shí)施例顯示一幅3D圖像的一個(gè)機(jī)制的示意圖。
圖5也是描繪根據(jù)本發(fā)明的第一實(shí)施例顯示一幅3D圖像的一個(gè)機(jī)制的示意圖。
圖6描繪了立體眼鏡。
圖7是顯示當(dāng)選中一個(gè)3D模式時(shí)執(zhí)行的圖像處理的流程圖。
圖8是描繪一幅圖像的數(shù)據(jù)格式的示意圖。
圖9是顯示一個(gè)灰度值調(diào)整的流程圖。
圖10是顯示灰度值調(diào)整(繼續(xù))的流程圖。
圖11是顯示灰度值調(diào)整(繼續(xù))的流程圖。
圖12是描繪一個(gè)顛倒確定中所使用的采樣區(qū)域和相應(yīng)的加權(quán)系數(shù)的圖。
圖13是顯示顛倒確定的流程圖。
圖14是顯示顛倒確定(繼續(xù))的流程圖。
圖15是描繪平滑中所使用的矩陣區(qū)域MM的圖。
圖16是顯示平滑的流程圖。
圖17是描繪一個(gè)分布調(diào)整的概念圖。
圖18是顯示分布調(diào)整的流程圖。
圖19也是顯示分布調(diào)整(繼續(xù))的流程圖。
圖20描繪了關(guān)于適合一個(gè)局部調(diào)整的一個(gè)對(duì)象的Z-值的一個(gè)分布。
圖21是顯示局部調(diào)整的流程圖。
圖22是顯示局部調(diào)整中包含的一個(gè)等高線確定的流程圖。
圖23是顯示等高線確定(繼續(xù))的流程圖。
圖24是顯示等高線確定(繼續(xù))的流程圖。
圖25是顯示局部調(diào)整中包含的一個(gè)對(duì)象中心確定的流程圖。
圖26是顯示對(duì)象中心確定(繼續(xù))的流程圖。
圖27是顯示對(duì)象中心確定(繼續(xù))的流程圖。
圖28是顯示局部調(diào)整中包含的一個(gè)交點(diǎn)確定的流程圖。
圖29是顯示局部調(diào)整中包含的一個(gè)平面內(nèi)Z-值計(jì)算的流程圖。
圖30是顯示一個(gè)平面內(nèi)Z-值校正的流程圖。
圖31是顯示一個(gè)Z-值調(diào)整的流程圖。
圖32是顯示一個(gè)象素移位的流程圖。
圖33是顯示象素移位(繼續(xù))的流程圖。
圖34是顯示象素移位(繼續(xù))的流程圖。
圖35描繪了根據(jù)本發(fā)明的一個(gè)修改后的實(shí)施例的一個(gè)增進(jìn)。
圖36是顯示根據(jù)修改后實(shí)施例的圖像處理的一個(gè)概覽的流程圖。
圖37是顯示根據(jù)修改后的實(shí)施例的一個(gè)增進(jìn)的流程圖。
圖38是描繪根據(jù)修改后的實(shí)施例顯示一幅立體圖像的一個(gè)方案的概念圖。
圖39也是描繪根據(jù)修改后的實(shí)施例顯示一幅立體圖像的一個(gè)方案的概念圖。
圖40也是描繪根據(jù)修改后的實(shí)施例顯示一幅立體圖像的一個(gè)方案的概念圖。
圖41也是描繪根據(jù)修改后的實(shí)施例顯示一幅立體圖像的一個(gè)方案的概念圖。
圖42是顯示根據(jù)修改后的實(shí)施例進(jìn)行的一個(gè)象素移位的流程圖。
圖43是描繪本發(fā)明的第二實(shí)施例的一個(gè)移動(dòng)終端1A的一個(gè)功能配置的框圖。
圖44是移動(dòng)終端1A的外部視圖。
圖45是描繪一個(gè)顯示器21b的一個(gè)配置的示意圖。
圖45描繪了當(dāng)一幅圖像被肉眼觀察到時(shí)激發(fā)立體視覺一個(gè)原理。
圖47是顯示由移動(dòng)終端1A執(zhí)行的顯示一幅靜態(tài)圖像的一個(gè)過程的流程圖。
圖48是顯示由移動(dòng)終端1A執(zhí)行的顯示移動(dòng)圖像的一個(gè)過程的流程圖。
圖49是描繪根據(jù)本發(fā)明的第三實(shí)施例的一個(gè)3D圖像生成裝置1B的一個(gè)功能配置的一個(gè)例子的框圖。
圖50是顯示3D圖像生成裝置1B執(zhí)行的顯示移動(dòng)圖像的一個(gè)過程的流程圖。
圖51是描繪根據(jù)本發(fā)明的一個(gè)應(yīng)用的一個(gè)序列模擬器40的一個(gè)功能配置的框圖。
具體實(shí)施例方式
現(xiàn)在將參照附圖詳細(xì)說明本發(fā)明的首選實(shí)施例。
<第一實(shí)施例>
<A.裝置配置>
圖1顯示了本發(fā)明的第一實(shí)施例的一個(gè)3D圖像生成裝置1。在圖1中,一個(gè)CPU(中央處理單元)11控制3D圖像生成裝置1的所有單元,以執(zhí)行包括生成立體圖像數(shù)據(jù)在內(nèi)的處理。一個(gè)ROM(只讀儲(chǔ)存器)12被用于儲(chǔ)存程序,其中一個(gè)程序在裝置打開時(shí)被執(zhí)行,并且儲(chǔ)存相關(guān)數(shù)據(jù)。一個(gè)RAM(隨機(jī)訪問儲(chǔ)存器)13被用作CPU 11的一個(gè)工作區(qū)域。
一個(gè)字符生成器14生成要顯示在一個(gè)顯示器上的字體數(shù)據(jù)。一個(gè)時(shí)間電路15輸出一個(gè)當(dāng)前時(shí)間。一個(gè)接口16將3D圖像生成裝置1連接到互聯(lián)網(wǎng)(未顯示)。一個(gè)傳輸控制單元17向/從連接到互聯(lián)網(wǎng)的終端發(fā)送/接收數(shù)據(jù)。
一個(gè)磁盤驅(qū)動(dòng)器18儲(chǔ)存用于執(zhí)行由3D圖像生成裝置1執(zhí)行的圖像處理的程序,包括一個(gè)OS程序和圖像處理步驟中生成的數(shù)據(jù)。一個(gè)CD-ROM驅(qū)動(dòng)器19被用于讀出儲(chǔ)存在一個(gè)CD-ROM 20中的圖像數(shù)據(jù)。一個(gè)顯示器21包括一個(gè)CRT、LCD或類似的設(shè)備,它在一個(gè)顯示控制單元22的控制下顯示一幅圖像。
一個(gè)鍵盤23是標(biāo)準(zhǔn)的正常尺寸鍵盤,它使得用戶能夠輸入指令。一個(gè)指針設(shè)備24是一個(gè)輸入設(shè)備,例如一塊供用戶輸入指令的觸摸板。一個(gè)輸入控制單元25通過鍵盤23和指針設(shè)備24獲得要輸出給CPU 11的指令輸入。
CPU 11、ROM 12、RAM 13、字符生成器14、時(shí)間電路15、傳輸控制單元17、磁盤驅(qū)動(dòng)器18、CD-ROM驅(qū)動(dòng)器19、顯示控制單元22以及輸入控制單元25連接到一個(gè)內(nèi)部總線26。從而數(shù)據(jù)通過內(nèi)部總線26在這些單元之間傳輸。
在生成3D圖像數(shù)據(jù)時(shí),CPU 11執(zhí)行一個(gè)顯示一幅3D圖像的應(yīng)用程序,該應(yīng)用程序被儲(chǔ)存在ROM 12中。圖2描繪了應(yīng)用程序運(yùn)行時(shí)顯示在顯示器21中的屏幕的一個(gè)例子。
如圖2所示,應(yīng)用程序運(yùn)行時(shí)顯示的屏幕是由一個(gè)主屏幕MD和一個(gè)菜單條MB構(gòu)成的,其中菜單條MB包含菜單項(xiàng)。用戶所選擇的移動(dòng)圖像被顯示在主屏幕MD中。
項(xiàng)目MI1至MI10被顯示在菜單條MB中。選中項(xiàng)目MI1以便標(biāo)識(shí)用戶希望在其上執(zhí)行圖像處理的一幅圖像。選中項(xiàng)目MI2以便設(shè)置一幅立體圖像的顯示選項(xiàng)。選中項(xiàng)目MI3以便儲(chǔ)存一幅立體圖像的數(shù)據(jù)。選中項(xiàng)目MI4以便終止應(yīng)用程序。選中項(xiàng)目MI5以便在主屏幕MD上顯示移動(dòng)圖像。選中項(xiàng)目MI6以便終止在主屏幕MD上顯示移動(dòng)圖像。選中項(xiàng)目MI7以便暫停在主屏幕MD中顯示移動(dòng)圖像。
項(xiàng)目MI8顯示了一種模式(主屏幕MD上顯示的移動(dòng)圖像的正常(2D)模式或立體圖(3D)模式),選中該項(xiàng)目以便在這些模式之間切換。具體地,當(dāng)用戶作出選擇時(shí),MI8在正常(2D)和立體圖(3D)模式之間變化。圖2的上半圖和下半圖分別表示了2D模式和3D模式起作用時(shí)的一個(gè)屏幕。
選中項(xiàng)目MI9以便指定實(shí)現(xiàn)一個(gè)合并方案的一個(gè)模式(奇/偶模式或立體模式)。假定在此實(shí)施例中只有這兩種方案可用。但是有可能添加對(duì)應(yīng)于其他實(shí)現(xiàn)立體視覺的合并方案的其他模式。具體地,當(dāng)合并多個(gè)圖像以獲得一幅立體圖像時(shí),有可能采用一種合并方案,其中使用了對(duì)應(yīng)于四個(gè)觀察點(diǎn)的四幅圖像。此外,有可能采用一種立體視覺方案,其中使用了分別對(duì)應(yīng)于由用戶選擇的八或九個(gè)觀察點(diǎn)的八或九幅圖像。
項(xiàng)目MI10表示實(shí)現(xiàn)一個(gè)凸出方向的一個(gè)模式,并且用于在這些模式之間切換,其中一種是F1模式,它給予立體圖像的觀察者一幅三維圖像相對(duì)于屏幕表面后凹的視覺印象,另一種是F2模式,它給予立體圖像的觀察者一幅三維圖像相對(duì)于表面前凸的視覺印象。在圖2所描繪的兩幅圖像中均選中了F1模式;從而觀察者將感知到一幅相對(duì)于表面后凹的三維圖像。
圖3顯示了當(dāng)用戶點(diǎn)擊項(xiàng)目MI2時(shí)顯示器21中顯示的一個(gè)對(duì)話面板的一個(gè)例子。如圖3所示,一個(gè)標(biāo)題欄BR位于屏幕的上方,用于引起此對(duì)話面板關(guān)閉的一個(gè)關(guān)閉框BC就位于此處。
滑動(dòng)條IS1和IS2,輸入框IB1、IB2、IB3和IB4、選中框IB5和IB6以及按鈕BM2和BM3被安排在設(shè)置對(duì)話面板中。用戶可操作滑動(dòng)條IB1以指定一個(gè)接口深度值。用戶所指定的“接口深度”值被顯示在輸入框IB1中。用戶可以直接在輸入框IB1中輸入一個(gè)數(shù)字。
注意接口深度表示感知到的一幅圖像相對(duì)于屏幕表面后凹(或前凸)的程度。從而接口深度越大,感知到的三維世界前凸(或后凹)的程度越大。例如,通過合并根據(jù)一個(gè)視差象素向左移位的用于用戶左眼的一幅圖像以及象素向右移位的用于用戶右眼的一幅圖像而生成的一幅立體圖像被用戶感知為仿佛世界相對(duì)于所述表面是后凹的,如果兩幅圖像的象素按相反方向移動(dòng),則用戶會(huì)感知到立體圖像是前凸的。
用戶可移動(dòng)滑動(dòng)條IS2來指定一個(gè)“波動(dòng)”值。用戶所指定的值被顯示在輸入框IB2中。用戶也可以直接在輸入框IB2中輸入一個(gè)數(shù)字。要注意波動(dòng)表示一幅立體圖像中最遠(yuǎn)(最深)點(diǎn)和最近(最淺)點(diǎn)之間的一個(gè)海拔高度差。從而波動(dòng)越大,就越強(qiáng)調(diào)波動(dòng)。相反,波動(dòng)越小,用戶感知到的世界越平面。
用戶可以分別在輸入框IB3和IB4中輸入“對(duì)象深度”的最大和最小值。一個(gè)對(duì)象深度被分配給一幅圖像中所包含的一個(gè)對(duì)象,它是以感知到的深度來表示對(duì)象的位置的一個(gè)參數(shù)(相對(duì)于屏幕表面向前或向后凸出的程度)。按鈕BM1用于將一個(gè)對(duì)象深度的最大和最小值設(shè)為一個(gè)缺省值。
用戶可通過選中選中框IB5或IB6來指定要描繪的第一條線(一條奇數(shù)號(hào)的線或一條偶數(shù)號(hào)的線)。當(dāng)按下按鈕BM2時(shí),設(shè)定當(dāng)前設(shè)置。當(dāng)按下按鈕BM3時(shí),取消當(dāng)前設(shè)置并且設(shè)定先前的設(shè)置。通過此對(duì)話面板設(shè)置的參數(shù)被用于以下將說明的圖像處理中。
有多種使用一對(duì)圖像來實(shí)現(xiàn)觀察者的立體視覺的方案。在此實(shí)施例中應(yīng)該采用一種所謂的奇-偶方案。在此情況下,通過將一個(gè)偏振條狀濾波器放置在顯示器21的一個(gè)屏幕上,帶著偏振眼鏡的用戶能夠以三維的方式感知屏幕上的一幅圖像。
更具體地,如圖4所示,以規(guī)則的間隔將用于左眼的具有預(yù)定的寬度和長(zhǎng)度的偏振條狀濾波器FL0、FL2...分別放置在屏幕的水平掃描線中的偶數(shù)號(hào)線SL0、SL2...上。以規(guī)則的間隔將具有預(yù)定寬度的偏振濾波器FL1、FL3分別放置在屏幕的奇數(shù)號(hào)線SL1、SL3...上。如圖5所示,用于左眼的圖像數(shù)據(jù)被顯示在顯示器21的偶數(shù)號(hào)線SL0、SL2...中,而用于右眼的圖像數(shù)據(jù)被顯示在顯示器21的奇數(shù)號(hào)線SL1、SL3....中。左眼的偏振條狀濾波器FL0、FL2...的偏振方向與右眼的偏振條狀濾波器FL1、FL3...的方向正交。
如圖6所示,在偏振眼鏡GS上放置了一個(gè)用于左眼的濾波器Fleft和一個(gè)用于右眼的濾波器Fright。Fleft和Fright的偏振方向分別與用于左眼和用于右眼的偏振濾波器的方向相同。
當(dāng)用戶戴著偏振眼鏡觀看顯示器21的屏幕時(shí),源于顯示器21的偶數(shù)號(hào)線SL0、SL2...的光線通過偏振濾波器FL0、FL2...傳輸;從而光線通過濾波器Fleft到達(dá)觀察者的左眼,而不會(huì)到達(dá)觀察者的右眼,因?yàn)闉V波器Fright切斷了光線。相反地,源于顯示器21的奇數(shù)號(hào)線SL1、SL3...的光線通過偏振濾波器FL1、FL3...傳輸,從而到達(dá)觀察者的右眼,但是光線不會(huì)到達(dá)觀察者帶濾波器Fleft的左眼。從而供左眼和右眼使用的圖像分別輸入給左眼和右眼,從而使得觀察者能夠以三維的方式感知一幅顯示的圖像。
<B.圖像處理>
圖7顯示了當(dāng)顯示一幅3D圖像的應(yīng)用程序運(yùn)行時(shí),在用戶已執(zhí)行了一個(gè)確定操作以選擇3D模式的情況下,由3D圖像生成裝置1執(zhí)行的一個(gè)圖像處理的流程。
首先,CPU 11讀取彩色的移動(dòng)圖像的一幀的數(shù)據(jù)(步驟S101),并且檢查數(shù)據(jù)是否是RGB格式的(步驟S102)。在數(shù)據(jù)不是RGB格式的情況下,CPU 11將數(shù)據(jù)轉(zhuǎn)換成RGB格式(步驟S103)??梢砸匀魏晤愋偷母袷綄?duì)彩色移動(dòng)圖像的數(shù)據(jù)進(jìn)行格式化。可以對(duì)數(shù)據(jù)進(jìn)行壓縮。在壓縮數(shù)據(jù)的情況下,在步驟S103之前采用解壓縮。彩色移動(dòng)圖像數(shù)據(jù)的象素的顏色深度(比特深度)可以是16、24或32比特。
此外,可將彩色移動(dòng)圖像數(shù)據(jù)儲(chǔ)存在磁盤18或CD-ROM 20上。此外,可通過一條電纜從一個(gè)圖像再現(xiàn)設(shè)備(例如一臺(tái)DVD播放器)輸入數(shù)據(jù)。此外,數(shù)據(jù)可以是通過衛(wèi)星和電纜的一個(gè)TV節(jié)目廣播的圖像數(shù)據(jù),由連接到3D圖像生成裝置1的一臺(tái)電視機(jī)提供。此外,可以從互聯(lián)網(wǎng)上的一臺(tái)服務(wù)器下載數(shù)據(jù)。
接下來,CPU 11根據(jù)圖像數(shù)據(jù)值(R值、G值、B值)計(jì)算象素的灰度值,并且將灰度值分配給象素的Z-值(步驟S104,以下稱為一個(gè)灰度值調(diào)整)。
在為所有象素確定了Z-值之后,通過顛倒確定(步驟S105)、平滑(步驟S106)、分布調(diào)整(步驟S107)和局部調(diào)整(步驟S108和S109)來調(diào)整Z-值。最后,使用上述調(diào)整根據(jù)Z-值計(jì)算一個(gè)象素的位移度。通過移動(dòng)象素生成一幅立體圖像(步驟S110)。以下詳細(xì)說明調(diào)整過程。
在以下說明中,假設(shè)描繪語(yǔ)法和數(shù)據(jù)類型聲明的一種方法符合C語(yǔ)言或它的一個(gè)擴(kuò)展(C++等)。此外,在此實(shí)施例中,通過16、24或32比特的顏色深度對(duì)彩色圖像數(shù)據(jù)進(jìn)行格式化,如上所述。如圖8所示,在16比特彩色圖像數(shù)據(jù)的情況下,每個(gè)象素對(duì)應(yīng)于R、G和B分別具有5比特、6比特和5比特?cái)?shù)據(jù)。在24比特?cái)?shù)據(jù)的情況下,每個(gè)象素對(duì)應(yīng)于R、G和B分別具有8比特、8比特和8比特?cái)?shù)據(jù)。在32比特?cái)?shù)據(jù)的情況下,每個(gè)象素具有在24比特彩色圖像數(shù)據(jù)之前添加空白數(shù)據(jù)的數(shù)據(jù)。
<B-1灰度值調(diào)整>
現(xiàn)在將參考圖9、10和11說明圖7的步驟S104所示的灰度值調(diào)整。
在灰度值調(diào)整中,使用特定的權(quán)重修改R、G和B的灰度成分。具體地,根據(jù)方程(1),預(yù)定的權(quán)重被分別分配給每個(gè)象素的R、G和B顏色分量以修改一個(gè)灰度值。
Z=0.3*R+0.5*G+0.11*B (1)在16比特?cái)?shù)據(jù)的情況下,一個(gè)象素的Z-值的可能取的值的范圍為從0到31。在24或32比特?cái)?shù)據(jù)的情況下,值的范圍為從0到255。注意根據(jù)存在于人眼的視網(wǎng)膜中的對(duì)R、G和B敏感的錐形細(xì)胞的比率分別確定上述權(quán)重30%、59%和11%。雖然可采用其他權(quán)重,根據(jù)由上述權(quán)重獲得的灰度生成的立體圖像可以給觀察者最自然的可塑性。
接下來,進(jìn)一步調(diào)整加權(quán)調(diào)整后的灰度值。如果采用每se的灰度值來表示深度,其中一個(gè)步長(zhǎng)等級(jí)對(duì)應(yīng)于深度的一個(gè)單位,則對(duì)應(yīng)于位于一幅原始2D圖像中靠前的區(qū)域中的一個(gè)對(duì)象的一個(gè)象素的等級(jí)步長(zhǎng)寬度與對(duì)應(yīng)于位于靠后的區(qū)域中的一個(gè)對(duì)象的一個(gè)象素的等級(jí)步長(zhǎng)寬度都表示深度差。換句話說,這樣的灰度值不能正確地表示原始圖像中的對(duì)象的深度。因此需要修改灰度值步長(zhǎng),以便對(duì)應(yīng)于位于靠后的區(qū)域中的一個(gè)對(duì)象的一個(gè)象素的灰度的單個(gè)步長(zhǎng)所表示的深度能夠大于對(duì)應(yīng)于位于靠前的區(qū)域中的一個(gè)對(duì)象的一個(gè)象素的灰度的單個(gè)步長(zhǎng)。具體地,采用一個(gè)級(jí)數(shù)an(n=1,2,3...)來表示對(duì)應(yīng)于不同深度的象素的灰度。根據(jù)根據(jù)方程(2)的一個(gè)算術(shù)級(jí)數(shù)或根據(jù)方程(3)的一個(gè)幾何級(jí)數(shù)來修改象素的Z-值,以便向?qū)?yīng)于位于靠后的區(qū)域中的一個(gè)對(duì)象的一個(gè)象素分配的深度單位大于對(duì)應(yīng)于位于靠前的區(qū)域中的一個(gè)對(duì)象的一個(gè)象素。
an=a+(n-1)*d(2)an=a*rn-1(3)
其中n是一個(gè)正整數(shù),a是一個(gè)初項(xiàng),表示校正因子的公共差d和公共比r可以根據(jù)原始2D圖像的特征確定。
在以下說明中,*src是一個(gè)表示儲(chǔ)存原始圖像數(shù)據(jù)src的地址的指針,WD表示原始2D圖像中水平排列的象素?cái)?shù)目,HT表示原始圖像中垂直排列的象素?cái)?shù)目,而*zinfo是表示儲(chǔ)存一個(gè)計(jì)算出的Z-值的地址的一個(gè)指針。例如,如果原始2D圖像的數(shù)據(jù)大小為1024點(diǎn)乘768點(diǎn),則WD為1024而HT為768。
首先,如圖9所示,CPU 11確定要處理的圖像數(shù)據(jù)的顏色深度是否為16比特(步驟S201)。當(dāng)顏色深度為16比特時(shí),執(zhí)行一個(gè)變量聲明Unsigned Short*srcp(步驟S202),執(zhí)行對(duì)一個(gè)目標(biāo)象素的數(shù)據(jù)的強(qiáng)制轉(zhuǎn)換以便獲得unsigned short格式的數(shù)據(jù),并且將數(shù)據(jù)src的地址分配給變量srcp(步驟S204)。
接下來,CPU 11將一個(gè)計(jì)數(shù)器CC的一個(gè)值重置為0(步驟S205)。在步驟S206中,CPU 11確定計(jì)數(shù)器CC的值是否小于WD*TH(步驟S206)。如果不滿足步驟S206的條件,則CPU 11確定對(duì)于整屏幕的象素的處理完成,以結(jié)束灰度值調(diào)整。如果滿足了步驟S206的條件,則在以下步驟S207至S210中執(zhí)行灰度值調(diào)整。具體地,在步驟S207中,對(duì)于R值,CPU 11在儲(chǔ)存在由指針*srcp所指定的一個(gè)區(qū)域內(nèi)的16比特?cái)?shù)據(jù)與一個(gè)十六進(jìn)制數(shù)F800或二進(jìn)制數(shù)1111100000000000之間進(jìn)行一個(gè)AND操作,執(zhí)行一個(gè)向右五比特的算術(shù)移位,并且乘以30。接下來CPU 11對(duì)以上計(jì)算出的值執(zhí)行強(qiáng)制轉(zhuǎn)換,以便獲得一個(gè)int型的更新后的R值(步驟S207)。到目前為止,原始R值乘以30獲得的一個(gè)值被賦給了變量R。在步驟S208中,對(duì)于G值,CPU 11在由指針*srcp指定的一個(gè)區(qū)域中儲(chǔ)存的16比特?cái)?shù)據(jù)與一個(gè)十六進(jìn)制數(shù)據(jù)07E0之間執(zhí)行一個(gè)AND操作,執(zhí)行一個(gè)向右6比特的算術(shù)移位,然后乘以59。接下來CPU 11對(duì)以上計(jì)算出的值執(zhí)行強(qiáng)制轉(zhuǎn)換,以便獲得一個(gè)int型的更新后的G值(步驟S208)。從而,由原始G值乘以59獲得的一個(gè)值被賦給了變量G。
在步驟S209中,對(duì)于B值,CPU 11在由指針*srcp指定的一個(gè)區(qū)域中儲(chǔ)存的16比特?cái)?shù)據(jù)與一個(gè)十六進(jìn)制數(shù)據(jù)001F之間執(zhí)行一個(gè)AND操作,執(zhí)行一個(gè)向右5比特的算術(shù)移位,然后乘以11。接下來CPU 11對(duì)以上計(jì)算出的值執(zhí)行強(qiáng)制轉(zhuǎn)換,以便獲得一個(gè)int型的更新后的G值(步驟S208)。從而,由原始G值乘以11獲得的一個(gè)值被賦給了變量B。最后,CPU 11將變量R、G和B之和除以100得到的值賦給由一個(gè)指針*zinfo標(biāo)識(shí)的一個(gè)地址(步驟S210)。
到目前為止完成了對(duì)單個(gè)象素的處理,變量srcp、zinfo以及計(jì)數(shù)器CC的當(dāng)前值加1(步驟S211),并且處理返回步驟S206以便在另一個(gè)象素上執(zhí)行上述處理。在一個(gè)屏幕內(nèi)的所有象素上類似地執(zhí)行此處理。
在不滿足步驟S201的條件的情況下,CPU 11進(jìn)一步確定圖像數(shù)據(jù)是否是24比特格式的(圖10的步驟S215)。接下來,正如圖9中所示的步驟S205和S206那樣,重置計(jì)數(shù)器(步驟S216)并且進(jìn)行步驟S217的確定。
接下來,以與16比特?cái)?shù)據(jù)的情況類似的方式調(diào)整R、G和B值。具體地,執(zhí)行圖10中所示的步驟S218至S220而不是圖9所示的步驟S207至209。具體地,對(duì)于變量B,將儲(chǔ)存在由一個(gè)指針*src所指定的一個(gè)地址中的24比特?cái)?shù)據(jù)乘以11,賦給變量B(步驟S218)。接下來,將儲(chǔ)存在由一個(gè)指針*(src+1)所指定的一個(gè)地址中的24比特?cái)?shù)據(jù)乘以59,賦給變量G(步驟S219)。接下來,將儲(chǔ)存在由一個(gè)指針*(src+2)指定的一個(gè)地址中的24比特?cái)?shù)據(jù)乘以30,賦給變量R(步驟S220)。以后的步驟,包括步驟S221和222,與16比特?cái)?shù)據(jù)的情況相似。
如果不滿足步驟S215的條件,則CPU 11確定數(shù)據(jù)的顏色深度為32比特?cái)?shù)據(jù)。在此情況下,執(zhí)行一個(gè)變量聲明Unsigned long*srcp(圖11的步驟S225),并且將一個(gè)目標(biāo)象素的數(shù)據(jù)類型轉(zhuǎn)換為unsigned long(步驟S226),并且將數(shù)據(jù)src的一個(gè)地址分配給變量srcp(步驟S227)。接下來,與16比特?cái)?shù)據(jù)的情況類似,重置計(jì)數(shù)器(步驟S228)并且在步驟S229中執(zhí)行終止檢查。
在步驟S230至S232中調(diào)整R、G和B值。具體地,在儲(chǔ)存在由一個(gè)指針*srcp指定的一個(gè)地址中的32比特?cái)?shù)據(jù)與一個(gè)十六進(jìn)制數(shù)00FF0000之間執(zhí)行一個(gè)AND操作,并且執(zhí)行一個(gè)向右16比特的算術(shù)移位,然后乘以30。將值的數(shù)據(jù)類型轉(zhuǎn)換成int型,最后將值賦給變量R(步驟S230)。從而,由原始的8比特R值乘以30獲得的一個(gè)值被賦給了變量R。
接下來,CPU 11在32比特?cái)?shù)據(jù)與一個(gè)十六進(jìn)制數(shù)0000FF00之間執(zhí)行一個(gè)AND操作,并且執(zhí)行一個(gè)向右8比特的算術(shù)移位,然后乘以59,以便將由原始G值乘以59獲得的值賦給變量G。從而,由G值乘以11獲得的值被賦給了變量B。接下來,CPU 11在儲(chǔ)存在由指針*srcp指定的一個(gè)區(qū)域中的32比特?cái)?shù)據(jù)與一個(gè)十六進(jìn)制數(shù)000000FF之間執(zhí)行一個(gè)AND操作,并且將其乘以11。此數(shù)據(jù)被轉(zhuǎn)換為要賦給變量B的int型數(shù)據(jù)(步驟S232)。從而,由B值乘以11獲得的值被賦給了變量B。以后的步驟與16和24比特?cái)?shù)據(jù)的情況相似。
<B-2.顛倒確定>
參見圖12至14,現(xiàn)在將說明圖7的步驟S105的顛倒確定。在顛倒確定中調(diào)整步驟S104中計(jì)算出的一個(gè)Z-值以便觸發(fā)自然可塑性。
如上所述,理論上為了生成一幅立體圖像,只要根據(jù)一個(gè)象素的一個(gè)Z-值確定象素的位移量就夠了。例如,位移量被確定為正比于步驟S104中計(jì)算出的一個(gè)Z-值。因此,立體圖像的觀察者感知到一個(gè)Z-值較大的對(duì)象(“較亮”的對(duì)象)位于近側(cè),而一個(gè)Z-值較小的對(duì)象(“較暗”的對(duì)象)位于遠(yuǎn)側(cè)。從而當(dāng)在一幅原始2D圖像中一個(gè)較暗的對(duì)象實(shí)際上位于遠(yuǎn)側(cè)而一個(gè)較亮的對(duì)象實(shí)際上位于近側(cè)時(shí),根據(jù)該2D圖像生成的一幅3D圖像將成功地觸發(fā)自然和逼真的可塑性。
但是,有這樣的一種情況,即一幅原始2D圖像中包括一個(gè)應(yīng)該位于遠(yuǎn)側(cè)的Z-值較大的對(duì)象和一個(gè)應(yīng)該位于近側(cè)的Z-值較小的對(duì)象;例如當(dāng)一個(gè)暗淡的對(duì)象位于一片明亮的背景(例如藍(lán)天)中時(shí)。在這種情況下,如果位移量被簡(jiǎn)單地確定為正比于象素的一個(gè)Z-值,則由于遠(yuǎn)處和近處之間的對(duì)象的位置關(guān)系顛倒了,生成的一幅3D圖像將觸發(fā)不自然的可塑性。
根據(jù)以上情況,在顛倒確定中,分析一幅原始2D圖像中的Z-值趨勢(shì),并且根據(jù)偏差確定是否顛倒位移量與Z-值之間的定性關(guān)系。具體地,如圖12所示,將顯示一幅原始2D圖像的數(shù)據(jù)的一個(gè)屏幕分成左上、中上、右上、左中、中中、右中、左下、中下和右下區(qū)域SS1至SS9(以下稱為“采樣區(qū)域”),每個(gè)區(qū)域?qū)?象素,長(zhǎng)8象素??梢孕薷牟蓸訁^(qū)域的大小和數(shù)目。
每個(gè)采樣區(qū)域具有一個(gè)權(quán)重。具體地,分別將3、4、3、2、5、2、1、2和1分配給SS1、SS2、SS3、SS4、SS5、SS6、SS7、SS8和SS9。雖然可以采用其他權(quán)重,但是權(quán)重是根據(jù)關(guān)于一幅圖像中的一個(gè)對(duì)象的一般趨勢(shì)來確定的。“一般趨勢(shì)”是一個(gè)經(jīng)驗(yàn)規(guī)則,即一幅圖像的上半部分比圖像的下半部分更可能包括一片背景(例如一片藍(lán)天),并且當(dāng)圖像是包括一個(gè)人或一朵花的一張照片時(shí),一個(gè)對(duì)象通常位于圖像中央。根據(jù)一般趨勢(shì),最好將最大權(quán)重分配給一個(gè)中央?yún)^(qū)域,并且分配給上部區(qū)域的權(quán)重大于下部區(qū)域的權(quán)重。
以下將參見圖13和14詳細(xì)說明顛倒確定的流程。首先CPU11計(jì)算一幅圖像的數(shù)據(jù)的所有象素的Z-值的一個(gè)均值(步驟S301)。接下來,CPU 11重置變量S1和S2的值,并且將一個(gè)計(jì)數(shù)器CT重置為0(步驟S302)。變量S1和S2分別是表示權(quán)重大于和小于屏幕中所有象素的平均權(quán)重的區(qū)域的權(quán)重的參數(shù)。計(jì)數(shù)器CT的一個(gè)值表示已進(jìn)行顛倒確定的采樣區(qū)域的數(shù)目。
接下來,檢查計(jì)數(shù)器CT的一個(gè)當(dāng)前值是否小于9(步驟S303),以確定是否已經(jīng)在所有的采樣區(qū)域SS上執(zhí)行了顛倒確定。如果滿足步驟S303的條件,則檢查一個(gè)目標(biāo)采樣區(qū)域內(nèi)的象素的Z-值的均值是否大于均值MZ(步驟S304)。
如果滿足步驟S304的條件,則第CT個(gè)采樣區(qū)域的一個(gè)權(quán)重被添加到變量S1(步驟S305)。如果不滿足步驟S304的條件,則第CT個(gè)采樣區(qū)域的權(quán)重被添加到變量S2(步驟S306)。接下來計(jì)數(shù)器CT的一個(gè)值加1(步驟S307),并且過程返回步驟S303以便在另一個(gè)采樣區(qū)域上執(zhí)行處理。
當(dāng)已經(jīng)為所有9個(gè)采樣區(qū)域完成了顛倒確定時(shí)(步驟S303,“否”),處理轉(zhuǎn)到圖14的步驟S308,在該步驟中檢查變量S1是否大于變量S2。在S1>S2的情況下(步驟S308,“是”),顛倒位移量和Z-值之間的一個(gè)定性關(guān)系(步驟S309)。在不滿足步驟S308的條件的情況下(步驟S308,“否”),檢查S1是否小于S2(步驟S310)。在S1<S2的情況下(步驟S310,“是”),不顛倒定性關(guān)系(步驟S311)。在S1>S2并且S1<S2的情況下,即S1=S2的情況下(步驟S310,“否”),檢查采樣區(qū)域SS5的Z-值的均值是否大于均值MZ(步驟S312)。如果滿足步驟S312的條件,則不顛倒關(guān)系(步驟S313);如果不滿足條件,則顛倒關(guān)系(步驟S314)。
可以采用另一個(gè)檢查,如下所述。具體的,指定一個(gè)或多個(gè)采樣區(qū)域,其中這些采樣區(qū)域內(nèi)的象素的平均Z-值大于圖像中所包含的所有象素的平均Z-值,并且獲取所述多個(gè)指定區(qū)域的權(quán)重之和。如果和值大于一個(gè)預(yù)定的閾值,則顛倒位移量和Z-值之間的關(guān)系,因?yàn)樵?D圖像具有位于近側(cè)的一個(gè)對(duì)象較暗而位于遠(yuǎn)側(cè)的一個(gè)對(duì)象較亮的趨勢(shì)。如果和值低于預(yù)定的閾值,則保持關(guān)系。
接下來,CPU 11檢查顯示一幅3D圖像的應(yīng)用程序的項(xiàng)目MI1是否被設(shè)為F2模式(前凸視圖)(步驟S315)。當(dāng)F2模式起作用時(shí),顛倒或進(jìn)一步顛倒在步驟S309、S311、S313和S314中已經(jīng)顛倒或尚未顛倒的關(guān)系(步驟S316)。這是因?yàn)楫?dāng)F2模式起作用時(shí),需要顛倒深度和Z-值之間的關(guān)系。在這個(gè)階段,顛倒確定完成。通過顛倒確定獲得的關(guān)于是否進(jìn)行關(guān)系顛倒的最終確定反映在圖7的步驟S110的后續(xù)處理中,以下將對(duì)其進(jìn)行說明。
<B-3.平滑>
在顛倒確定之后,CPU 11執(zhí)行平滑圖7的步驟S104所計(jì)算出的Z-值的平滑偏差處理(步驟S106)。以下將說明執(zhí)行此處理過程的原因。
如上所述,一幅立體圖像是通過水平移動(dòng)象素生成的,其中位移量對(duì)應(yīng)于由其Z-值確定的視差。因此,在包含Z-值的差別相當(dāng)大的象素的一個(gè)區(qū)域里,一個(gè)象素的視差與相鄰象素的視差之間的差將會(huì)較大。在該區(qū)域中,在相鄰象素按相反方向移動(dòng)的區(qū)域中將發(fā)生“象素交叉現(xiàn)象”。此現(xiàn)象尤其傾向于出現(xiàn)在一個(gè)強(qiáng)光對(duì)象的邊緣處。當(dāng)該現(xiàn)象出現(xiàn)時(shí),在生成的立體圖像中將出現(xiàn)邊緣模糊、暈光、干擾帶或類似的現(xiàn)象。執(zhí)行平滑以調(diào)整Z-值,以便防止這些異常。
具體地,如圖15所示,CPU 11為一個(gè)象素Px計(jì)算包含在一幅原始2D圖像中的Z-值的一個(gè)均值,以及一個(gè)預(yù)定的區(qū)域MM(以下稱為一個(gè)矩陣)中的象素的Z-值的一個(gè)均值,該區(qū)域包含象素Px。然后CPU 11為象素Px的Z-值更新計(jì)算出的均值。相應(yīng)地,象素Px的Z-值被分配給矩陣MM中的象素的Z-值的均值,其中矩陣MM的左上角包含象素Px,并且矩陣包含144點(diǎn),其中縱向12點(diǎn)(My),水平12個(gè)象素(Mx)。經(jīng)過平滑以后,與步驟S104中獲得的Z-值相比,相鄰象素的偏差被平滑了。
可以采用其他大小的矩陣MM。矩陣MM的大小越大,影響Z-值的均值的象素的數(shù)目越大。因此,相鄰象素之間的Z-值之差較?。粡亩^察者感知到立體圖像中描繪的世界越平面。另一方面,矩陣MM的大小越小,觀察者對(duì)立體圖像中描繪的世界的感知越粗糙。
以下將參考圖16提供對(duì)平滑的詳細(xì)說明。注意*outinfo是一個(gè)表示儲(chǔ)存經(jīng)過平滑的Z-值的地址的指針。
在步驟S401中,重置表示一個(gè)目標(biāo)象素的縱向位置的一個(gè)計(jì)數(shù)器CLN的值。接下來,檢查計(jì)數(shù)器CLN的一個(gè)值是否小于縱向象素HT的總數(shù)目(步驟S402)。如果不滿足步驟S402的條件,則確定已經(jīng)在屏幕上的所有象素上執(zhí)行了平滑,從而平滑結(jié)束。
在步驟S403中,檢查一個(gè)目標(biāo)象素Px是否位于距離屏幕底部12個(gè)象素,或者HT-CLN是否等于或大于12。如果滿足步驟S403的條件,則將12賦給表示矩陣MM的長(zhǎng)度的一個(gè)變量MTh(步驟S404)。如果不滿足步驟S403的條件,則將HT-CLN賦給變量MTh(步驟S405)。通過這個(gè)替換,調(diào)整了在目標(biāo)象素的位置接近屏幕底端的情況下矩陣MM的大小。
接下來,初始化表示目標(biāo)象素的水平位置的一個(gè)計(jì)數(shù)器CWD(步驟S406)。檢查計(jì)數(shù)器CWD的當(dāng)前值是否小于水平象素的總數(shù)目WD(步驟S407)。如果滿足步驟S407的條件,則檢查目標(biāo)象素Px是否位于距離屏幕右邊緣向左12或更多個(gè)象素,或者WD-CWD是否等于或大于12(步驟S408)。
如果滿足步驟S408的條件,則將12賦給表示一個(gè)矩陣MM的寬度的一個(gè)變量MTw(步驟S409)。如果不滿足步驟S408的條件,則將WD-CWD賦給變量MTw(步驟S410)。通過這個(gè)替換,調(diào)整了在目標(biāo)象素的位置接近屏幕右邊緣的情況下矩陣MM的大小。
接下來,對(duì)于由計(jì)數(shù)器CLN和CWD的值指定的一個(gè)目標(biāo)象素,獲取矩陣MM中的所有象素的Z-值(zinfo)之和(SM1),其中矩陣MM的大小由MTh*MTw定義(步驟S411)。將矩陣MM中所有象素的Z-值的一個(gè)均值SM1/(MTh*MTw)賦給outinfo(步驟S412)。
到目前為止,在單個(gè)象素上執(zhí)行了平滑;從而計(jì)數(shù)器CWD的一個(gè)當(dāng)前值加1(步驟S413),并且處理返回步驟S407以便在另一個(gè)目標(biāo)象素上執(zhí)行平滑。如果不滿足步驟S407的條件,則確定已經(jīng)在一行上的所有象素上執(zhí)行了平滑。從而計(jì)數(shù)器CLN的一個(gè)當(dāng)前值加1(步驟S414)并且處理返回步驟S402以便在另一個(gè)目標(biāo)象素上執(zhí)行平滑。從而最終在屏幕中的所有象素上執(zhí)行了平滑。
B-4.分布調(diào)整現(xiàn)在將說明分布調(diào)整(圖7的步驟S107)。由于經(jīng)過平滑的象素的Z-值取決于圖像中所有象素的Z-值的均值,因此Z-值的分布可能被偏置了。圖17的上半部分顯示了Z-值的一個(gè)偏置分布的例子。在此情況下,用不經(jīng)過任何調(diào)整的Z-值生成的立體圖像不會(huì)成功實(shí)現(xiàn)自然可塑性。由于以上原因,在這個(gè)分布調(diào)整中修改Z-值的分布,如圖17的下半部分所示。
參見圖18和19,以下將詳細(xì)說明分布調(diào)整。*z_image是表示儲(chǔ)存一個(gè)Z-值的地址的指針,ave_z是一個(gè)屏幕中的所有象素的Z-值的一個(gè)均值,mix和min_z分別是Z-值的最大值和最小值,而*adjust_z_image是表示執(zhí)行經(jīng)過分布調(diào)整的Z-值的地址的指針。首先計(jì)算max_z、min_z、ave_z(步驟S501)。接下來,max_z-ave_z和min_z-ave_z分別被賦給變量max_span和min_span,它們是表示分布差異的參數(shù)(步驟S502)。
接下來,檢查顏色深度是否為16比特(步驟S503)。當(dāng)顏色深度為16比特時(shí),將31賦給一個(gè)表示等級(jí)大小的變量max(步驟S504)。當(dāng)顏色深度為24比特或32比特時(shí)(步驟S503,“否”),將255賦給變量max(步驟S505)。
接下來,將計(jì)數(shù)器CLN的值重置為0,并且將儲(chǔ)存z_image的一個(gè)地址分配給一個(gè)指針變量*pz_image,該指針變量表示一個(gè)目標(biāo)象素的Z-值的修改后的值(步驟S506)。接下來,檢查計(jì)數(shù)器CLN的一個(gè)值是否小于縱向象素HT的總數(shù)目(步驟S507)。如果不滿足步驟S597的條件,則已經(jīng)在所有象素上執(zhí)行了處理;從而分布調(diào)整結(jié)束。
如果滿足步驟S507的條件,則將計(jì)數(shù)器CWD的值重置為0(步驟S508)。在步驟S509中,檢查計(jì)數(shù)器CWD的當(dāng)前值是否小于縱向象素的總數(shù)目。如果不滿足步驟S509的條件,則完成了一行上的所有象素的處理;從而計(jì)數(shù)器CLN的一個(gè)當(dāng)前值加1(步驟S510),并且處理返回步驟S507以便在下一行的象素上執(zhí)行分布調(diào)整。
如果滿足步驟S509的條件,則檢查pz_image是否大于ave_z(步驟S511)。在pz_image>ave_z的情況下,即Z-值大于平均值,將(z-ave_z)/max_span*(max-ave_z)賦給表示象素的修改值的變量z(步驟S512)。
如果不滿足步驟S511的條件,則檢查是否pz_image<ave_z(步驟S513)。如果滿足步驟S513的條件,則將(z-ave_z)/(min_z-ave_z)*min_span賦給變量z(步驟S514)。如果不滿足步驟S514的條件,或者*pz_image等于Z-值的均值ave_z,則將0賦給變量z(步驟S515)。
當(dāng)在此階段確定了變量z之后,將一個(gè)值pz_image+z賦給*adjust_z_image(步驟S516),以便儲(chǔ)存目標(biāo)象素的一個(gè)校正后的Z-值。接下來,*pz-image、adjust_z_image和CLN的值加1(步驟S517),并且處理返回步驟S509以便在另一個(gè)象素上執(zhí)行分布調(diào)整。
現(xiàn)在將說明局部調(diào)整(圖7的步驟S108)。可能出現(xiàn)除了上述調(diào)整外還需要進(jìn)一步校正的情況。具體地,失真出現(xiàn)在關(guān)于單個(gè)對(duì)象的象素的Z-值的分布中。例如,在一個(gè)球形對(duì)象中,Z-值應(yīng)該從中央到周邊逐漸地并且徑向地變化。但是可能出現(xiàn)由于某種原因?qū)ο蟮囊粋€(gè)特定部分的Z-值相當(dāng)大或小的情況,或者可能出現(xiàn)Z-值分布不規(guī)則的情況。
如果用具有上述失真分布的Z-值生成立體圖像,則對(duì)象的深度順序也會(huì)相應(yīng)失真;從而一幅應(yīng)該被感知為單個(gè)對(duì)象的圖像對(duì)于觀察者來說顯得不自然。由于此原因,在局部調(diào)整中,在一個(gè)對(duì)象的基礎(chǔ)上校正象素的Z-值。
以下將參考圖21和21說明對(duì)局部調(diào)整的一個(gè)概覽。首先,校正在步驟S101至S107中獲得的Z-值的一個(gè)范圍(步長(zhǎng)數(shù)目)(圖21的步驟S700)。接下來,獲得等高線HL0至HL5,它們是由步驟S700中獲得的具有相等的Z-值的象素組成的(步驟S701)。接下來,根據(jù)獲得的等高線標(biāo)識(shí)對(duì)象(例如圖20的OB1和OB2)(步驟S702)。標(biāo)識(shí)關(guān)于對(duì)象的Z-值的中心的Y坐標(biāo)PPC。獲得始于點(diǎn)PPC的垂直線與等高線的交點(diǎn)坐標(biāo)Y。
用以上計(jì)算出的坐標(biāo)獲得關(guān)于對(duì)象的象素的Z-值(步驟S704和S705)。最后,校正相鄰兩條線之間的一個(gè)區(qū)域(以下稱為等高面)內(nèi)的Z-值(步驟S706)。注意當(dāng)只獲得一條等高線時(shí),這條線內(nèi)的區(qū)域應(yīng)該被當(dāng)成等高面。以下將說明詳細(xì)的處理過程。
(a)等級(jí)步長(zhǎng)的校正如上所述,在生成一幅立體圖像時(shí),象素位移的最小單位是一象素。換句話說,移動(dòng)象素的距離不可能短于一個(gè)象素的寬度。因此,如果確定Z-值的一個(gè)增量1對(duì)應(yīng)于等于一個(gè)象素的最小位移距離,則最大的Z-值255將導(dǎo)致象素位移的距離等于256個(gè)象素的寬度。但是,很大的位移距離(例如屏幕上的8mm)將會(huì)引起觀察者的疲勞,并且會(huì)妨礙觀察者以三維的方式感知圖像。因此,CPU 11對(duì)步驟S101至107中獲得的Z-值執(zhí)行近似,以便用特定的離散值來替換Z-值。
具體地,CPU 11用一個(gè)舍入因子MK去除步驟S107中獲得的一個(gè)Z-值,舍入小數(shù)位的數(shù)字(向上取整、向下取整或者舍入取整),并且將其乘以因子MK。從而用舍子因子MK的整數(shù)倍的數(shù)字替換了象素的Z-值。
換句話說,舍入因子MK是表示要離散化的Z-值的步長(zhǎng)的一個(gè)數(shù)字。在此實(shí)施例中,舍入因子MK被設(shè)為這樣一個(gè)值,獲得此值的方式是用Z-值的最大數(shù)字255除以由用戶指定的一個(gè)對(duì)象深度Ob,并且對(duì)其進(jìn)行舍入。對(duì)象深度Ob是表示Z-值可用的步長(zhǎng)數(shù)的一個(gè)參數(shù)。例如,如果MK=10,則可以為Z-值賦的值為0、1、2、3...25,這意味著Z-值可以有26步。
(b)等高線的計(jì)算以下將參考圖22至24詳細(xì)說明等高線的計(jì)算。*Outline是表示儲(chǔ)存等高線基本數(shù)據(jù)的一個(gè)地址的指針,而*cord是表示儲(chǔ)存Z-值矢量的一個(gè)地址的指針。Cord是具有Vinfo結(jié)構(gòu)的數(shù)據(jù)。結(jié)構(gòu)Vinfo包括以下數(shù)據(jù)元素Z-值,npoint(一個(gè)整數(shù))以及*point(坐標(biāo)數(shù)據(jù))。
首先,CPU 11將255除以舍入因子MK所得的值賦給一個(gè)max,這是一個(gè)常數(shù),而將0賦給一個(gè)變量Target_z,它表示已經(jīng)被執(zhí)行了處理的象素的數(shù)目(步驟S710)。
接下來,檢查變量Target_z的一個(gè)值是否大于常數(shù)值max(步驟S711)。如果不滿足步驟S711的條件,則等高線計(jì)算結(jié)束。如果滿足步驟S711的條件,則將計(jì)數(shù)器CLN重置為0(步驟S712),并且檢查計(jì)數(shù)器CLN的一個(gè)當(dāng)前值是否小于HT(步驟S713)。如果不滿足步驟S713的條件,則Target_z的一個(gè)值加1(步驟S714)并且處理返回步驟S711。如果滿足步驟S713的條件,則將計(jì)數(shù)器CWD重置為0,并且將-1賦給變量P1和P2,將0賦給一個(gè)變量fnd(步驟S715)。
接下來,檢查計(jì)數(shù)器CWD的一個(gè)值是否小于WD(步驟S716)。如果滿足步驟S716的條件,則檢查*outline的一個(gè)值是否等于Target_z的一個(gè)值(步驟S717)。如果滿足步驟S717的條件,則檢查變量P1的一個(gè)值是否大于0(步驟S718)。如果不滿足步驟S718的條件,則將計(jì)數(shù)器CWD的值賦給變量P1(步驟S719),計(jì)數(shù)器CWD的一個(gè)值加1(步驟S720),并且處理返回步驟S716。如果滿足步驟S718的條件,則處理前進(jìn)到步驟S720以執(zhí)行以后的處理。
如果不滿足步驟S717的條件,則檢查變量P1的一個(gè)當(dāng)前值是否大于0(步驟S721)。如果滿足步驟S721的條件,則將計(jì)數(shù)器CWD的一個(gè)當(dāng)前值賦給變量P2,變量fnd的一個(gè)值加1(步驟S722),并且處理返回步驟S720以執(zhí)行以后的處理。如果不滿足步驟S716的條件,則檢查變量fnd的一個(gè)值是否大于0(步驟S723)。如果不滿足步驟S723的條件,則計(jì)數(shù)器CLN的一個(gè)當(dāng)前值加1(步驟S724),并且處理返回步驟S713。
如果滿足步驟S723的條件,則進(jìn)行一個(gè)搜索以查找一個(gè)目標(biāo)象素的相鄰象素,所述象素的Z-值不同于目標(biāo)象素的一個(gè)Z-值。具體地,搜索以圖23的左半部分所示的順序進(jìn)行。首選,將一個(gè)目標(biāo)象素P1與右上象素相比較(步驟S730)。如果兩個(gè)象素的Z-值是相同的(步驟S730,“否”),則將目標(biāo)象素P1的Z-值與直接位于象素P1上方的象素的一個(gè)Z-值相比較(步驟S731)。類似地,對(duì)與目標(biāo)象素相鄰的六個(gè)象素進(jìn)行比較(步驟S732至S735)。搜索順序的示意圖如圖23的右半部分所示。
如果找到一個(gè)Z-值不同于目標(biāo)象素P1的Z-值的象素(步驟730、731、732、733、734和735中的“是”),則檢查以前是否已經(jīng)找到過這個(gè)象素,以便確認(rèn)已經(jīng)檢查了目標(biāo)象素P1周圍的所有象素(步驟S736)。從而提取出包含不同Z-值的一個(gè)邊緣。當(dāng)檢查了與所述邊緣相關(guān)的所有象素之后(步驟S736,“是”),等高線計(jì)算結(jié)束。
如果不滿足步驟S736的條件,則將先前處理中找到的一個(gè)象素的x和y坐標(biāo)分別賦給cord點(diǎn)的x和y值(步驟S737)。接下來,cord點(diǎn)和npoint的值加1(步驟S738和S739),將找到的象素設(shè)為目標(biāo)象素P1(步驟S740),并且處理返回步驟S730以執(zhí)行比較。從而找到了邊緣以便提取一條等高線。
(c)對(duì)象中心的確定以下將參考圖25至27說明對(duì)象中心的確定(圖21的步驟S702)。在對(duì)象中心的確定中,獲取外切關(guān)于一個(gè)對(duì)象的最內(nèi)的等高線的一個(gè)矩形的頂點(diǎn)坐標(biāo),將矩形的一個(gè)中心視為該對(duì)象的Z-值的一個(gè)中心。Cent_cord是表示儲(chǔ)存該最內(nèi)矩形的一個(gè)矢量區(qū)域的指針,center是要獲得的一個(gè)中心的坐標(biāo),而*side_cord是表示儲(chǔ)存除最內(nèi)矩形外的其他矩形的一個(gè)矢量區(qū)域的指針。
首先,CPU 11選擇一條等高線(步驟S750)。接下來初始化表示等高線上的象素的x和y坐標(biāo)的最小和最大值的變量g_min_x、g_man_x、g_min_y、g_man_y(步驟S751)。在圖25中,為了簡(jiǎn)便起見,將g_min_x的初始值顯示為999999,但也可以采用大于WD的其他值。這一點(diǎn)對(duì)g_min_y同樣適用。在步驟S752中將cord的一個(gè)值賦給cordp。
接下來,檢查cord的npoint的值是否大于0(步驟S753)。如果不滿足步驟S753的條件,則檢查是否已經(jīng)在所有等高線上執(zhí)行了處理(步驟S754)。如果不滿足步驟S754的條件,則處理返回步驟S750以便在另一條等高線上執(zhí)行處理。如果滿足步驟S754的條件,則處理結(jié)束。如果滿足步驟S753的條件,則初始化變量。具體地,將計(jì)數(shù)器的一個(gè)值重置為0(步驟S755),將999999賦給min_x,將0賦給max_x,將999999賦給min_y,將0賦給max_y(步驟S756),并且將cord的npoint的值賦給一個(gè)變量PNT。
接下來,檢查計(jì)數(shù)器CNT的一個(gè)當(dāng)前值是否小于cord的npoint的值,即檢查是否已經(jīng)在關(guān)于一條等高線上的所有象素上執(zhí)行了處理(步驟S757)。如果未完成處理(步驟S757,“是”),則檢查變量PNT的一個(gè)x值是否小于min_x(步驟S758)。如果滿足步驟S758的條件,則將水平最小位置賦給P1。具體地,將PNT的x值賦給p1.x,將PNT的y值賦給p1.y,并且將pi.x賦給min_x(步驟S759)。如果不滿足步驟S758的條件,則省略步驟S759。
接下來,檢查PNT的x值是否大于max_x(步驟S760)。如果滿足步驟S760的條件,則將水平最大位置賦給p2。具體地,將PNT的x值賦給p2.x,PNT的y值賦給p2.y,并且將p2.x賦給max_x(步驟S761)。如果不滿足步驟S760的條件,則省略步驟S761。
接下來,檢查變量PNT的y值是否小于min_y(步驟S762)。如果滿足步驟S762的條件,則將垂直最小位置賦給p3。具體地,將PNT的x值賦給p3.x,PNT的y值賦給p3.y,并且將p3.y賦給min_y(步驟S763)。如果不滿足步驟S762的條件,則省略步驟S763。
接下來,檢查變量PNT的y值是否小于max_y(步驟S764)。如果滿足步驟S764的條件,則將垂直最大位置賦給p4。具體地,將PNT的x值賦給p4.x,PNT的y值賦給p4.y,并且將p4.y賦給max_y(步驟S765)。如果不滿足步驟S672條件,則省略步驟S765。接下來,計(jì)數(shù)器PNT的一個(gè)值加1(步驟S766),并且處理返回步驟S757。
當(dāng)計(jì)算一個(gè)外切矩形的頂點(diǎn)時(shí)(步驟S757,“否”),檢查p1.x是否小于g_min_x以確定矩形是不是最內(nèi)的那一個(gè)。如果矩形位于最內(nèi)(步驟S767,“是”),則將cordp儲(chǔ)存在cent_cord中(步驟S768),并且將p1.x賦給g_min_x(步驟S769)。接下來,計(jì)算始于最內(nèi)矩形的頂點(diǎn)(p1.x,p3.y)且止于一個(gè)點(diǎn)(p2.x,p4.y)的一條線段與始于一個(gè)點(diǎn)(p2.x,p3.y)且止于一個(gè)點(diǎn)(p1.x,p4.y)的一條線段的交點(diǎn)。分別將交點(diǎn)的x和y坐標(biāo)儲(chǔ)存在center.x和center.y中(步驟S770)。如果矩形不是最內(nèi)的那一個(gè)(步驟S767,“否”),則跳過步驟S768至770。
接下來,檢查p2.x是否大于g_max_x(步驟S771)。如果p2.x>g_max_x(步驟S711,“是”),則將cordp儲(chǔ)存在side_cord中,并且將p2.x儲(chǔ)存在g_max_x中(步驟S772和S773)。如果p2.x小于g_max_x(步驟S771,“否”),則省略步驟S772和773。接下來,cordp的一個(gè)值加1(步驟S774)并且處理返回步驟S753以便在另一條等高線上執(zhí)行類似的處理。
(d)交點(diǎn)的確定以下將參考圖28說明交點(diǎn)確定(圖21的步驟S703)。注意p[]是一個(gè)儲(chǔ)存一個(gè)交點(diǎn)的坐標(biāo)的數(shù)組。首先,選擇一條等高線(步驟S78),將cord賦給cordp,并且將一個(gè)變量find設(shè)為0(步驟S781)。接下來,檢查cord的npoint是否大于0(步驟S782)。如果不滿足步驟S782的條件,則檢查是否已經(jīng)在所有等高線上執(zhí)行了計(jì)算(步驟S783)。如果不滿足步驟S783的條件,則處理返回步驟S780以便在另一條等高線上執(zhí)行交點(diǎn)確定。如果滿足步驟S783的條件則交點(diǎn)確定結(jié)束。
如果滿足步驟S782的條件則將cordp的npoint賦給變量PNT,并且將計(jì)數(shù)器CNT的值重置為0(步驟S784)。接下來,檢查計(jì)數(shù)器CNT的值是否小于cord的npoint(步驟S785)。如果滿足步驟S785的條件,則檢查PNT.x是否等于center.x(步驟S786)。
如果滿足步驟S786的條件,則檢查PNT.y是否大于center.y(步驟S787)。如果滿足步驟S787的條件,則確定了始于所述中心的一條垂直線與等高線的一個(gè)交點(diǎn)。具體地,將PNT.x賦給p[find],并且將PNT.y賦給p[find](步驟S788)。
接下來,變量find的一個(gè)值加1(步驟S789),并且將-1賦給p[find].x和p[find].y(步驟S790)。接下來,cordp的一個(gè)值加1(步驟S791),并且處理返回步驟S782。
如果不滿足步驟S786或787的條件,則CNT和PNT的值加1(步驟S792),并且處理返回步驟S785。如果不滿足步驟S785的條件,則處理返回步驟S791。
(e)平面內(nèi)Z-值計(jì)算以下將參考圖29說明平面內(nèi)Z-值計(jì)算(圖21的步驟S704)。在此計(jì)算中,用先前處理中獲得的一個(gè)對(duì)象的中心以及所述交點(diǎn)的坐標(biāo)來修改一個(gè)等高的平面內(nèi)的Z-值。一個(gè)恒定值dist表示在假設(shè)用一臺(tái)照明機(jī)拍攝顯示在屏幕上的圖像的情況下,一臺(tái)照相機(jī)的位置與一個(gè)屏幕之間的一個(gè)距離,一個(gè)恒定值focus表示照相機(jī)的一個(gè)焦距,而new_z[]表示用于儲(chǔ)存在平面內(nèi)Z-值計(jì)算中計(jì)算出的Z-值的一個(gè)數(shù)組。
首先,CPU 11選擇一條等高線(步驟S795),并且將計(jì)數(shù)器CNT的值重置為0(步驟S796)。接下來,將HT減去center.y所得的值賦給cent_h,并且將dist/focus*cent_h賦給object_h,它表示對(duì)象的一個(gè)深度(步驟S797)。接下來,檢查P[CNT].x的值是否大于0(步驟S798)。如果滿足步驟S798的條件,則將object_h*focus/(p[CNT].y-center.y)-dist賦給new_z[CNT](步驟S799),以便修改一個(gè)等高平面內(nèi)的一個(gè)象素的Z-值,以使得Z-值正比于對(duì)象和象素的Z-值的中心之間的距離的y分量。
接下來,計(jì)數(shù)器CNT的一個(gè)值加1(步驟S800),并且處理返回步驟S798。如果不滿足步驟S798的條件,檢查是否已經(jīng)在所有等高線上執(zhí)行了平面內(nèi)Z-值計(jì)算(步驟S801)。如果不滿足步驟S801的條件,則處理返回步驟S795,以便在另一條等高線上執(zhí)行平面內(nèi)計(jì)算。如果滿足步驟S801的條件,則平面內(nèi)計(jì)算結(jié)束。
(f)平面內(nèi)修改Z-值的計(jì)算在一個(gè)Z-值的平面內(nèi)修改的計(jì)算中,用圖21的步驟S704中獲得的一個(gè)Z-值校正一個(gè)等高平面內(nèi)的一個(gè)Z-值。以下將參考圖30提供對(duì)平面內(nèi)修改Z-值的計(jì)算的詳細(xì)說明。注意adjust_outline[]是儲(chǔ)存校正前和校正后的Z-值之差的一個(gè)數(shù)組。
首先,選擇在先前處理中獲得的一個(gè)交點(diǎn)(步驟S805),并且將1賦給計(jì)數(shù)器CNT的值(步驟S806)。接下來,檢查p[CNT].x是否大于0(步驟S807)。如果不滿足S806的條件,則確定為一個(gè)交點(diǎn)完成了處理,并且檢查是否已經(jīng)在所有交點(diǎn)上執(zhí)行了處理(步驟S808)。如果不滿足步驟S808的條件,則處理返回步驟S805以便在另一個(gè)交點(diǎn)上執(zhí)行處理。如果滿足步驟S808的條件,則Z-值的平面內(nèi)修改的計(jì)算結(jié)束。
如果滿足步驟S807的條件,則將由一個(gè)坐標(biāo)(p[CNT-1].x,p[CNT-1].y-1)所標(biāo)識(shí)的一個(gè)象素Z-值賦給一個(gè)變量oz1(步驟S809),并且將由一個(gè)坐標(biāo)(p[CNT].x,p[CNT].y-1)標(biāo)識(shí)的一個(gè)象素的Z-值賦給一個(gè)變量oz2(步驟S810)。接下來,將oz2-oz1賦給一個(gè)變量sub1(步驟S811),并且將new_z[CNT]-new_z[CNT-1]賦給一個(gè)變量sub2(步驟S812),其中new_z[CNT]-new_z[CNT-1]是調(diào)整Z-值的一個(gè)增量。
接下來,檢查sub1和sub2的符號(hào)是否相同(步驟S813)。如果符號(hào)相同(步驟S813,“是”),則將0賦給adjust_outline[CNT](步驟S814)。如果符號(hào)不同(步驟S813,“否”),則將sub2-sub1賦給adjust_outline[CNT](步驟S815)。接下來,計(jì)數(shù)器CNT加1(步驟S816),然后處理返回步驟S807。
(g)基于對(duì)象的Z-值調(diào)整在此調(diào)整中,用步驟S705中獲得的平面內(nèi)修改Z-值來調(diào)整一個(gè)對(duì)象中的象素的Z-值。以下將參考圖31提供對(duì)基于對(duì)象的Z-值調(diào)整(圖7的步驟S109)的詳細(xì)說明。注意*adjust_z_image是表示儲(chǔ)存調(diào)整后的Z-值的地址的指針。
首先,將計(jì)數(shù)器CLN重置為0(步驟S901),并且檢查計(jì)數(shù)器CLN的當(dāng)前值是否小于HT(步驟S902)。如果不滿足步驟S902的條件,則處理結(jié)束。如果滿足步驟S902的條件,則將0賦給計(jì)數(shù)器CWD,并且檢查CWD是否小于WD(步驟S904)。如果滿足步驟S904的條件,則獲得目標(biāo)象素的adjust_z_image(步驟S905),并且通過將adjust_z_image加到z-image來更新z_image(步驟S906)。到目前為止完成一個(gè)象素的一個(gè)Z-值的更新。
接下來,CNT的一個(gè)值加1(步驟S907),并且處理返回步驟S904以便在另一個(gè)象素上執(zhí)行處理。如果不滿足步驟S904的條件,則CWD的一個(gè)值加1(步驟S908)并且處理返回步驟S902以便在另一條線上的象素上執(zhí)行處理。從而調(diào)整了所有象素的Z-值。
<B-6.象素移位>
在這一節(jié)里,根據(jù)到目前為止獲得的一個(gè)Z-值以及由用戶指定的一個(gè)參數(shù)確定視差(位移量),并且根據(jù)位移量水平移動(dòng)一個(gè)象素。象素移位的整體處理 (圖7步驟S110)如圖32所示。注意*image3d是表示儲(chǔ)存立體圖像數(shù)據(jù)的地址的指針。
首先,將計(jì)數(shù)器CLN重置為0(步驟S1001),并且檢查CLN的當(dāng)前值是否小于HT(步驟S1002)。如果不滿足步驟S1002的條件,則處理結(jié)束。如果滿足步驟S1002的條件,則將計(jì)數(shù)器CWD重置為0(步驟S1003)。
接下來,檢查CWD的當(dāng)前值是否小于WD(步驟S1004)。如果滿足步驟S1004的條件,則調(diào)整對(duì)應(yīng)于各outinfo的Z-值的范圍(步驟S1005)。以下將步驟S1005中獲得的一個(gè)Z-值稱為一個(gè)ZZ。以下將參考圖33說明ZZ的計(jì)算。
首先,用舍入因子MK調(diào)整一個(gè)Z-值可能取的值(步驟S1020和S1021)。此調(diào)整與步驟S700的處理類似。以下將步驟S1020和S1021中獲得的一個(gè)Z-值稱為一個(gè)ZZ。
接下來,檢查ZZ是否大于一個(gè)上限(步驟S1022)。上限是由用戶在設(shè)置對(duì)話面板的輸入框IB3中輸入的。如果ZZ大于上限(步驟S1022,“是”),則用上限替換ZZ(步驟S1023)。類似地,檢查ZZ是否小于一個(gè)下限(步驟S1024)。下限是由用戶在設(shè)置對(duì)話面板的輸入框IB4中輸入的。如果ZZ小于下限(步驟S1024,“是”),則用下限替換ZZ。
通過前述處理過程,使得位于上限和下限之外的Z值進(jìn)入預(yù)定范圍內(nèi)??紤]到Z-值較大和Z-值較小的象素的數(shù)目與象素總數(shù)相比較小這一事實(shí)而采用了此處理。當(dāng)在不出現(xiàn)象素交叉現(xiàn)象的情況下調(diào)整Z-值可能取值的范圍時(shí),生成的立體圖像的質(zhì)量改進(jìn)了。
再次參見圖32,用先前步驟中獲得的ZZ計(jì)算視差SS。現(xiàn)在將參考圖34說明SS的計(jì)算。在步驟S105的顛倒確定中,檢查是否實(shí)現(xiàn)了一個(gè)Z-值的顛倒(步驟S1030)。如果實(shí)現(xiàn)了顛倒(步驟S1030,“是”),則將256-ZZ賦給ZZ(步驟S1031)。接下來,將ZZ加上一個(gè)接口深度后獲得的值賦給SS(步驟S1032)。接口深度是通過設(shè)置對(duì)話面板的輸入框IB1輸入的。如果沒有實(shí)現(xiàn)顛倒(步驟S1032,“否”),則處理進(jìn)行到步驟S1032。
再次參見圖32,當(dāng)計(jì)算視差SS時(shí),檢查計(jì)數(shù)器CLN的一個(gè)當(dāng)前值的奇偶性(步驟S1007)。如果計(jì)數(shù)器CLN的值是偶數(shù)(步驟S1007,“是”),則將CN+SS賦給MV,它表示一個(gè)象素的位移量(步驟S1008)。如果計(jì)數(shù)器CLN的值是奇數(shù),則將CN-SS賦給MV(步驟S1009)。從而,以相反的方向移動(dòng)一個(gè)象素,以便為右眼和左眼生成圖像。接下來,將由原始2D數(shù)據(jù)中的src+MV指定的一個(gè)位置的象素?cái)?shù)據(jù)儲(chǔ)存在image3d中(步驟S1010)。到目前為止結(jié)束了在一個(gè)象素上的處理。
接下來,image3d、outinfo和計(jì)數(shù)器CWD的值加1(步驟S1001),并且處理返回步驟S1004,以便在另一個(gè)象素上執(zhí)行處理。在一條線上的象素上重復(fù)執(zhí)行處理。當(dāng)在一條線上的所有象素上執(zhí)行了處理以后(步驟S1004,“否”),將src設(shè)為下一條線的開始(步驟S1012),并且CLN的一個(gè)當(dāng)前值加1(步驟S1013),并且處理返回步驟S1002以便在下一條線上執(zhí)行處理。當(dāng)已經(jīng)在所有線上進(jìn)行了處理時(shí)(步驟S1002,“否”),處理結(jié)束。
正如到目前為止所說明的,Z值是以對(duì)象為基礎(chǔ)被調(diào)整的,所述對(duì)象基礎(chǔ)應(yīng)被視為一個(gè)單個(gè)對(duì)象,從而保持了與對(duì)象內(nèi)的象素相關(guān)的深度的順序。因此,生成的立體圖像成功的給予了觀察者逼真的印象。
在此實(shí)施例中,由于上述調(diào)整是在一個(gè)Z-值上執(zhí)行的,因此可以生成高質(zhì)量的立體圖像。此外,由于參數(shù)是由用戶通過生成一幅立體圖像的設(shè)置對(duì)話面板輸入的,因此也可以根據(jù)用戶偏好來生成一幅立體圖像。
雖然在此實(shí)施例中是順序?qū)崿F(xiàn)圖7中所示的步驟S103至S109的調(diào)整的,但是不必實(shí)現(xiàn)步驟S103至S109的所有步驟。當(dāng)然也可以從步驟S103至S109的多個(gè)調(diào)整中選擇要實(shí)現(xiàn)的一個(gè)或多個(gè)首選的調(diào)整。
<C.對(duì)第一實(shí)施例的修改>
<1.增強(qiáng)>
可以向一幅立體圖像提供增強(qiáng)一個(gè)屏幕中顯示的多個(gè)對(duì)象中的一個(gè)或多個(gè)特定對(duì)象的可塑性的效果。此增強(qiáng)對(duì)于一個(gè)對(duì)象在深度方向移動(dòng)的情況尤其有效。圖35是描繪增強(qiáng)的示意圖。具體地,通過將一個(gè)預(yù)定的值加到對(duì)象OBa中包含的等高平面中的Z-值來實(shí)現(xiàn)增強(qiáng),如圖35所示。
圖36顯示了當(dāng)實(shí)現(xiàn)3D模式時(shí)執(zhí)行的增強(qiáng)的處理流程的一個(gè)例子。圖35所示的處理與第一實(shí)施例的不同之處在于它在象素移位(步驟S1111)之前執(zhí)行增強(qiáng)(步驟S1110)。步驟S1101至S1119與第一實(shí)施例的各步驟相同,因此省略對(duì)它們的說明。
以下將參考圖37說明增強(qiáng)(步驟S1110)。注意offset_z是表示增強(qiáng)一個(gè)對(duì)象的程度的參數(shù)。首先,在步驟S1120至S1222中執(zhí)行一個(gè)終止檢查。具體地,將計(jì)數(shù)器CLN重置為0(步驟S1120),并且檢查計(jì)數(shù)器的當(dāng)前值是否小于HT(步驟S1121)。如果不滿足步驟S1121的條件,則增強(qiáng)結(jié)束。如果滿足步驟S1121的條件,則將CLN的值重置為0(步驟S1122)。
接下來,檢查計(jì)數(shù)器CWD的當(dāng)前值是否小于WD(步驟S1123)。如果滿足步驟S1123的條件,則繪出一條半直線,它始于一個(gè)坐標(biāo)(CWD,CLN),止于圖像的上邊緣頂部(步驟S1124),并且獲得半直線與等高線的交點(diǎn)數(shù)目(步驟S1125)。
接下來,檢查交點(diǎn)數(shù)目的奇偶性(步驟S1126)。如果交點(diǎn)數(shù)目為奇數(shù)(步驟S1126,“是”),則確定坐標(biāo)(CWD,CLN)位于一個(gè)相應(yīng)的矩形之內(nèi)。接下來,將z_image+CLN*WD+CWD賦給pz_image(步驟S1128),并且將*pz_image+CLN*WD+CWD*的一個(gè)值賦給*pz_image(步驟S1129)。如果交點(diǎn)數(shù)目為偶數(shù)(步驟S1126,“否”),則忽略步驟1127至S1129。到目前為止,在一個(gè)象素上執(zhí)行了增強(qiáng)。接下來,計(jì)數(shù)器CWD的一個(gè)值加1,并且處理返回步驟S1123以便在另一個(gè)象素上執(zhí)行增強(qiáng)。當(dāng)已在所有象素上執(zhí)行了增強(qiáng)時(shí)此處理結(jié)束。
<2.顯示方案>
在上述實(shí)施例中,采用了用于顯示一幅立體圖像的所謂的奇-偶方案,其中左眼的圖像顯示在顯示器21的屏幕的偶數(shù)行上,而右眼的圖像顯示顯示器21的屏幕的奇數(shù)行上。但是在本發(fā)明中可以采用其他顯示方案。例如,可以在顯示器21的一個(gè)屏幕的偶數(shù)行上顯示右眼的圖像,而在顯示器21的一個(gè)屏幕的奇數(shù)行上顯示左眼的圖像。
另外,可以采用一種所謂的上-下方案,如圖38所示,其中將用于左眼的一幅圖像的偶數(shù)行的數(shù)據(jù)讀出并儲(chǔ)存在一個(gè)幀緩沖器的上半部分,而將用于右眼的一幅圖像的奇數(shù)行的數(shù)據(jù)讀出并儲(chǔ)存在緩沖器的下半部分。此方案通常用在顯示一幅立體圖像的投影儀或或類似的設(shè)備中。當(dāng)然,可以讀取用于右眼的一幅圖像的偶數(shù)行的數(shù)據(jù)并將其儲(chǔ)存在緩沖器的上半部分,并且讀取用于左眼的一幅圖像的奇數(shù)行的數(shù)據(jù)并將其儲(chǔ)存在緩沖器的下半部分。
此外,可以采用如圖39所示的一種所謂的左-右方案,其中將用于左眼的偶數(shù)行的數(shù)據(jù)讀出并儲(chǔ)存在一個(gè)幀緩沖器的左半部分中,而將用于右眼的奇數(shù)行數(shù)據(jù)讀出并儲(chǔ)存在緩沖器的右半部分中。此方案通常用在顯示一幅立體圖像的一個(gè)CRT中。當(dāng)然,可以將用于右眼的偶數(shù)行數(shù)據(jù)儲(chǔ)存在緩沖器的左半部分中,而將用于左眼的奇數(shù)行數(shù)據(jù)儲(chǔ)存在緩沖器的右半部分中。
此外,可以采用一種所謂的兩幀方案,如圖40所示,其中用于左眼的一幅圖像被儲(chǔ)存在偶數(shù)幀緩沖器中,而用于右眼的一幅圖像被儲(chǔ)存在奇數(shù)幀緩沖器中。此方案通常用在顯示一幅立體圖像的一個(gè)投影儀或類似的設(shè)備中。當(dāng)然,可以將用于右眼的圖像數(shù)據(jù)儲(chǔ)存在偶數(shù)幀緩沖器中,而將用于左眼的圖像數(shù)據(jù)儲(chǔ)存在奇數(shù)幀緩沖器中。
此外,可以采用一種所謂的奇-偶文件分離方案,如圖41所示,其中用于左眼的圖像數(shù)據(jù)和用于右眼的圖像數(shù)據(jù)分開儲(chǔ)存在文件中。此方案通常用在顯示一幅立體圖像的一個(gè)投影儀中。
<3.數(shù)據(jù)儲(chǔ)存區(qū)域>
可以將右眼和左眼的圖像儲(chǔ)存在不同的儲(chǔ)存區(qū)域中。在此情況下,根據(jù)圖42所示的一個(gè)流程實(shí)現(xiàn)象素移位(圖7的步驟S110)。根據(jù)第一實(shí)施例的修改版本進(jìn)行的象素移位與根據(jù)第一實(shí)施例本身進(jìn)行的象素移位的不同之處在于,前者執(zhí)行圖42的步驟S1057至S1060,而不是圖32的步驟S1007至S1011。具體地,分別將右眼和左眼的圖像數(shù)據(jù)儲(chǔ)存在由用于左眼和右眼的由Rimage3d和Limage3d標(biāo)識(shí)的數(shù)據(jù)儲(chǔ)存區(qū)域中。
更具體地,當(dāng)在步驟S1056中獲得視差SS時(shí),將CN+SS賦給MV1并且將CN-SS賦給MV2(步驟S1057)。接下來,將由包含在原始2D圖像數(shù)據(jù)中的src+MV1標(biāo)識(shí)的一個(gè)位置上的一個(gè)象素的數(shù)據(jù)儲(chǔ)存在Limage3d中(步驟S1058),并且將由src+MV2指定的一個(gè)位置上的一個(gè)象素的數(shù)據(jù)儲(chǔ)存在Rimage3d中(步驟S1059)。接下來,將Limage3d、Rimage3d、outinfo和CWD的值加1(步驟S1060),并且處理返回步驟S1054以便在另一個(gè)象素上執(zhí)行增強(qiáng)。
<4.數(shù)據(jù)類型>
在上述實(shí)施例中,圖像數(shù)據(jù)是一幅2D彩色圖像的數(shù)據(jù),但是,本發(fā)明可以適用于一幅2D單色多等級(jí)圖像(例如一部單色電影)的數(shù)據(jù)。此外,在上述實(shí)施例中,要處理的原始數(shù)據(jù)是移動(dòng)圖像的單幀的數(shù)據(jù);但是,在本發(fā)明中可以處理一幅靜止幀圖片的數(shù)據(jù)。
<5.Z-值的計(jì)算>
在上述實(shí)施例中,一幅原始圖像的R、G和B值分別被乘以系數(shù)0.59、0.30、0.11,以生成一個(gè)將被后續(xù)調(diào)整所處理的Z值;但是也可采用其他系數(shù)??梢孕薷南禂?shù)以便從生成的3D圖像中獲得最自然的可塑性,或者可以根據(jù)用戶偏好來修改。此外,可以根據(jù)亮度、飽和度或色調(diào)而不是RGB來描述一個(gè)象素的顏色。此外也可以采用ARGB,其中A表示一個(gè)象素的一個(gè)alpha分量等。
<6.對(duì)象的識(shí)別>
在上述實(shí)施例中,獲取了關(guān)于Z-值的等高線,根據(jù)等高線識(shí)別了一個(gè)對(duì)象,然后校正關(guān)于對(duì)象的象素的Z-值。但是在本發(fā)明中可采用其他的識(shí)別一個(gè)對(duì)象的方法。例如,根據(jù)關(guān)于象素亮度、飽和度或色調(diào)的信息查找邊緣,以便確定由邊緣包圍的一個(gè)區(qū)域?qū)?yīng)于一個(gè)單個(gè)對(duì)象的區(qū)域。
<第二實(shí)施例>
<A.裝置配置>
現(xiàn)在將說明本發(fā)明的第二實(shí)施例。相同的數(shù)字被分配給與第一實(shí)施例相同的元件。第二實(shí)施例與第一實(shí)施例不同之處在于采用了一個(gè)移動(dòng)終端1A而不是3D圖像生成裝置1。圖43顯示了移動(dòng)終端1A的一個(gè)功能配置,圖44顯示了移動(dòng)終端1A的一個(gè)外部視圖。如圖44所示,移動(dòng)終端1A是,例如,一臺(tái)移動(dòng)電話。以下說明主要描述第一和第二實(shí)施例的差別。
圖43顯示了一個(gè)無線電通信單元27,它包括一個(gè)天線AT,用于將移動(dòng)終端連接到一個(gè)移動(dòng)通信網(wǎng)絡(luò),以便發(fā)送和接收數(shù)據(jù),例如移動(dòng)的圖像數(shù)據(jù)。該網(wǎng)絡(luò)包括一個(gè)通信單元28,它包括一個(gè)揚(yáng)聲器單元和一個(gè)擴(kuò)音器單元,用于實(shí)現(xiàn)語(yǔ)音通信。一個(gè)顯示器21a具有交替顯示2D模式圖像和3D圖像的功能,并且包括一個(gè)顯示面板,用于在肉眼觀察一幅圖像時(shí)激發(fā)立體視覺。一個(gè)顯示控制單元22a控制顯示器單元21a。一個(gè)操作單元30是一個(gè)輸入設(shè)備,例如一個(gè)十鍵鍵盤或一個(gè)光標(biāo)鍵,通過它用戶可以向移動(dòng)終端1A輸入指示。
以下將參考圖45和46簡(jiǎn)要說明當(dāng)肉眼觀察一幅圖像時(shí)激發(fā)立體視覺的原理。如圖45所示,顯示器21a包括一個(gè)背光板211、液晶面板212以及其上放置了視差欄柵的液晶面板213。以等于一個(gè)裂縫的寬度的間隔分別顯示面板中的用于左眼的條形圖像L1至L5和用于右眼的條形圖像R1至R5,以便當(dāng)觀察者位于離屏幕一個(gè)預(yù)定距離遠(yuǎn)處時(shí),圖像L1至L5只到達(dá)觀察者的左眼而圖像R1至R5只到達(dá)觀察者的右眼。在此情況下,如果將圖像生成為使得圖像L1至L5和圖像R1至R5的視差之差為一個(gè)常數(shù),則當(dāng)圖像被肉眼觀察到時(shí)會(huì)激發(fā)立體視覺。
再次參考圖44,一個(gè)十鍵鍵盤TK被放置在移動(dòng)終端1A的下半主體中,并且在上述TK中安放了功能鍵和一個(gè)開關(guān)DK,該開關(guān)用于在一個(gè)正常模式(2D模式)和一個(gè)立體視圖模式(3D模式)之間切換。顯示器21a的一個(gè)屏幕被放置在FK和DK上方。天線AT被放置在屏幕上方。分別用于包含在無線電通信單元28中的揚(yáng)聲器單元和擴(kuò)音器單元的孔28a和28b被放置在移動(dòng)終端1A的適當(dāng)位置處。
<2.操作>
<A.靜態(tài)圖像的顯示>
圖47顯示了由移動(dòng)終端1A執(zhí)行的顯示一幅靜態(tài)圖像的處理流程的一個(gè)例子,其中圖像被儲(chǔ)存在移動(dòng)終端1A中。首先,在用戶打開移動(dòng)終端1A執(zhí)行特定操作以選擇一幅圖像(步驟S2000)之后,CPU 11啟用正常模式(2D模式)(步驟S2001)。接下來,CPU 11向一個(gè)顯示控制單元22a輸出圖像數(shù)據(jù)(步驟S2002)。因此,用戶能夠以通常的方式觀察靜態(tài)圖像。
當(dāng)用戶輸入一條指令以停止圖像再現(xiàn)時(shí)(步驟S2003“否”和步驟S2004“是”),CPU 11終止顯示圖像(步驟S2005)。
當(dāng)開關(guān)DK被操作時(shí)(步驟S2003,“是”),CPU 11啟用立體視圖模式(步驟S2006),并且開始生成一幅立體圖像的數(shù)據(jù)(步驟S2007)。CPU 11將生成的數(shù)據(jù)輸出給顯示控制單元22a(步驟S2008)。因此,用戶能夠觀察立體圖像。生成一幅立體圖像的數(shù)據(jù)的方法與第一實(shí)施例所采用的方法相同,因此省略對(duì)它的說明。
當(dāng)用戶輸入一條指令以停止圖像再現(xiàn)時(shí)(步驟S2009“否”和步驟S2110“是”),CPU 11終止顯示圖像(步驟S2111)。當(dāng)用戶再次操作開關(guān)DK(步驟S2009,“是”),處理返回步驟S2001并且實(shí)現(xiàn)正常模式(2D模式)。
<B.移動(dòng)圖像的顯示>
圖48顯示了通過一個(gè)移動(dòng)通信網(wǎng)絡(luò)下載移動(dòng)圖像并且在移動(dòng)終端1A中顯示它們的處理流程的一個(gè)例子。當(dāng)移動(dòng)終端1A被打開時(shí),CPU 11啟用正常模式(2D模式)(步驟S3001)。當(dāng)用戶進(jìn)行預(yù)定操作時(shí),接收包含多幀的移動(dòng)圖像的數(shù)據(jù)(步驟S3002)。CPU11將接收到的數(shù)據(jù)儲(chǔ)存在RAM 13中,并且將第一幀的數(shù)據(jù)輸出給顯示控制單元22a(步驟S3003)。
接下來,CPU 11確定數(shù)據(jù)是否包含后續(xù)的幀(步驟S3004)。在數(shù)據(jù)不包含后續(xù)幀的情況下(步驟S3004,“否”),或者在雖然數(shù)據(jù)包含后續(xù)幀但用戶輸入了一條指令以終止圖像再現(xiàn)的情況下(步驟S3007,“是”),CPU 11終止圖像再現(xiàn)。如果數(shù)據(jù)包含后續(xù)幀(步驟S3004,“是”),CPU 11從RAM 13讀取另一幀的數(shù)據(jù),并且將其輸出給顯示控制單元22a。
通過上述過程,圖像數(shù)據(jù)被逐幀讀出并輸出給顯示器,直到用戶輸入一條指令來終止圖像再現(xiàn)(步驟S3006“否”和步驟S3007“否”)。當(dāng)用戶輸入一條指令來終止圖像再現(xiàn)時(shí)(步驟S3006“否”和步驟S3007“是”),圖像再現(xiàn)終止(步驟S3005)。到目前為止,移動(dòng)終端1A的用戶能以缺省設(shè)置按正常模式觀察移動(dòng)圖像。
當(dāng)用戶操作開關(guān)DK時(shí)(步驟S3006,“是”),CPU 11啟用立體視圖模式(步驟S3008)。接下來,CPU 11從RAM 13一幀接一幀地讀出圖像數(shù)據(jù)(步驟S3009)。CPU 11在讀出的數(shù)據(jù)上執(zhí)行處理,以便生成一幅上述的立體圖像(步驟S3010),并且將處理后的數(shù)據(jù)輸出給顯示控制單元22a(步驟S3011)。通過此過程,用戶能夠觀察一幅移動(dòng)的立體圖像。
逐幀顯示立體移動(dòng)圖像直到滿足以下條件之中的至少一個(gè)沒有后續(xù)幀(步驟S3012,“否”);用戶操作開關(guān)DK(步驟S3013,“是”);用戶輸入一條終止圖像再現(xiàn)的指示(步驟S3014,“是”)。
當(dāng)用戶操作開關(guān)DK(步驟S3013,“是”),處理返回步驟S3001,并且CPU 11啟動(dòng)正常模式(2D模式),并且將下一幀的圖像數(shù)據(jù)輸出給顯示控制單元22a。
在此實(shí)施例中,當(dāng)用戶操作開關(guān)DK時(shí),顯示在顯示器21a上的圖像(包括一幅靜止圖像和移動(dòng)的多幅圖像)立體在2D圖像和3D圖像之間切換。從而用戶能在觀看圖像的同時(shí)在2D圖像和3D圖像之間切換圖像。切換能力向用戶提供了空前的享受。例如,有可能用戶一般以2D模式觀看移動(dòng)的圖像并且切換到3D模式以便欣賞最愛的場(chǎng)景。
雖然在此實(shí)施例中假定移動(dòng)圖像的數(shù)據(jù)完全是下載的,但是接收和再現(xiàn)移動(dòng)圖像的方法并不限于上述方法。例如,可采用實(shí)況流,其中移動(dòng)終端1A一幅接一幅地接收?qǐng)D像數(shù)據(jù)。
<第三實(shí)施例>
圖49顯示了第三實(shí)施例的一個(gè)3D生成裝置1B的功能配置。3D生成裝置1B與第一實(shí)施例的3D生成裝置1的不同之處在于,它具有一個(gè)顯示控制單元22b、第一數(shù)據(jù)緩沖器31和第二數(shù)據(jù)緩沖器32,而不是顯示控制單元22,它具有一個(gè)顯示器21b,而不是顯示器21。在此實(shí)施例中,采用了一種在佩戴眼鏡34的用戶中激發(fā)立體視覺的方案,其中眼鏡34上放置了液晶百葉窗。
與第二實(shí)施例類似,在3D圖像生成裝置1B中可選擇立體圖模式和正常模式。在3D模式中,顯示控制單元22b分別在第一數(shù)據(jù)緩沖器31和第二數(shù)據(jù)緩沖器32中儲(chǔ)存左眼和右眼的圖像數(shù)據(jù)。顯示控制單元22b控制一個(gè)開關(guān)33,以便交替選擇第一數(shù)據(jù)緩沖器和第二數(shù)據(jù)緩沖器。具體地,以一個(gè)預(yù)定的時(shí)間間隔在顯示器21b上刷新一個(gè)屏幕,并且顯示控制單元22b與刷新間隔同步地切換開關(guān)33。此外,顯示控制單元22b與刷新間隔同步地控制眼鏡34的百葉窗的開關(guān)。
更具體地,當(dāng)開關(guān)33選擇第一數(shù)據(jù)緩沖器31時(shí),打開位于左眼的眼鏡上的百葉窗(即透明狀態(tài)),并且關(guān)閉位于右眼的眼鏡上的百葉窗(即截止?fàn)顟B(tài))。另一方面,當(dāng)開關(guān)33選擇第二數(shù)據(jù)緩沖器32時(shí),打開位于右眼的眼鏡上的百葉窗(即透明狀態(tài)),并且關(guān)閉位于左眼的眼鏡上的百葉窗(即截止?fàn)顟B(tài))。通過此過程,用于左眼的圖像只到達(dá)左眼,而用于右眼的圖像只到達(dá)右眼,從而激發(fā)了立體視覺。當(dāng)實(shí)現(xiàn)2D模式時(shí),顯示控制單元22b將圖像數(shù)據(jù)儲(chǔ)存在第一數(shù)據(jù)緩沖器中,并且控制開關(guān)33選擇第一數(shù)據(jù)緩沖器31。
圖50顯示了顯示用3D生成裝置1B接收到的移動(dòng)圖像的處理流程的一個(gè)例子。處理流程的要點(diǎn)與參考圖48所說明的第二實(shí)施例的流程相同,只不過分別執(zhí)行步驟S3003b和S3011b而不是步驟S3003和S3011。
更具體地,在2D模式中,CPU 11從儲(chǔ)存在RAM 13中的數(shù)據(jù)中提取單幀的圖像數(shù)據(jù),并且將其儲(chǔ)存在第一數(shù)據(jù)緩沖器31中,然后選擇開關(guān)33的第一數(shù)據(jù)緩沖器31(步驟S3003b)。因此,用戶能夠以缺省設(shè)置觀看2D的移動(dòng)圖像。
當(dāng)實(shí)現(xiàn)3D模式時(shí),顯示控制單元22b將步驟S3010中生成的用于左眼的圖像數(shù)據(jù)儲(chǔ)存在數(shù)據(jù)緩沖器31中,并且將用于右眼的圖像數(shù)據(jù)儲(chǔ)存在第二數(shù)據(jù)緩沖器32中(步驟S3011b)。接下來,顯示控制單元22b與顯示器單元21b的刷新間隔同步地轉(zhuǎn)換開關(guān)33,使其在第一和第二數(shù)據(jù)緩沖器之間切換。因此,用戶可成功地以三維的方式觀看幀圖像。在其他幀上逐一執(zhí)行類似的處理,從而向用戶提供移動(dòng)圖像的立體視覺。
<應(yīng)用>
可以將本發(fā)明的3D生成裝置應(yīng)用于用于控制汽車、火車、飛機(jī)或類似設(shè)備的培訓(xùn)的仿真器。具體地,在仿真器的一個(gè)屏幕上顯示立體圖像使得被培訓(xùn)者能夠更逼真地感知顯示出的圖像。圖51顯示了一個(gè)駕駛仿真器40的一個(gè)例子,其中包含了3D圖像生成裝置1B。
如圖51所示,一個(gè)操作單元41包括一個(gè)控制設(shè)備,例如一個(gè)方向盤。由用戶輸入的一條指令被提供給一個(gè)仿真處理單元42。仿真處理單元42根據(jù)由操作單元41輸入的指令執(zhí)行處理,以生成要顯示在屏幕上的圖像數(shù)據(jù)。圖像數(shù)據(jù)被輸出給一個(gè)幀緩沖器43。
當(dāng)實(shí)現(xiàn)2D模式(正常模式)時(shí),在3D圖像生成裝置1B上顯示2D圖像。當(dāng)實(shí)現(xiàn)3D模式時(shí),從幀緩沖器43中提取單幀的圖像數(shù)據(jù),并且生成一幅立體圖像的數(shù)據(jù)。從而在屏幕上顯示了一幅立體圖像。
根據(jù)本發(fā)明的生成一幅3D圖像的方法可由LSI(大規(guī)模集成電路)實(shí)現(xiàn)。立體圖像可顯示在包含該LSI的多種電子設(shè)備上。例如可以將一種根據(jù)本發(fā)明生成一幅3D圖像的方法應(yīng)用到一個(gè)通信終端、數(shù)碼相機(jī)、TV接收機(jī)或儲(chǔ)存顯示器,或應(yīng)用到醫(yī)學(xué)器具,例如內(nèi)診鏡。
雖然到目前為止已說明了本發(fā)明的首選實(shí)施例,但是要理解它們并不是用來將本發(fā)明限于這些實(shí)施例的。相反,本發(fā)明將覆蓋替換、變體和等價(jià)物,它們可包含在本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種生成立體圖像的方法包括一個(gè)計(jì)算步驟,該步驟根據(jù)多個(gè)象素的圖像數(shù)據(jù)計(jì)算多個(gè)象素的Z-值,其中所述多個(gè)象素形成一幅圖像,每個(gè)Z-值被分配給一個(gè)象素,并且每個(gè)Z-值表示對(duì)應(yīng)于所述一個(gè)象素的一個(gè)對(duì)象的深度;一個(gè)調(diào)整步驟,該步驟用不同于一個(gè)目標(biāo)象素的另一個(gè)象素的Z-值調(diào)整所述的計(jì)算步驟中獲得的目標(biāo)象素的一個(gè)Z-值;以及一個(gè)生成步驟,該步驟根據(jù)一個(gè)目標(biāo)象素的調(diào)整后的Z-值確定目標(biāo)象素的一個(gè)位移量,并且水平移動(dòng)所述目標(biāo)象素所述確定的位移量,以便生成右眼和左眼的圖像。
2.權(quán)利要求1所述的方法,其中在所述的計(jì)算步驟中,通過把多個(gè)預(yù)定權(quán)重加到一個(gè)目標(biāo)象素的圖像數(shù)據(jù)的多個(gè)顏色分量來獲得目標(biāo)象素的一個(gè)Z-值。
3.權(quán)利要求2所述的方法,其中分別根據(jù)對(duì)R、G和B敏感的錐形細(xì)胞的比率來確定所述多個(gè)權(quán)重,其中錐形細(xì)胞位于人眼的視網(wǎng)膜中。
4.權(quán)利要求1所述的方法,其中在所述的調(diào)整步驟中,調(diào)整象素的Z-值使得對(duì)應(yīng)于在一幅原始圖像中位置靠后的一個(gè)對(duì)象的一個(gè)象素的Z-值可以取的一個(gè)單個(gè)步長(zhǎng)表示的深度深于對(duì)應(yīng)于在原始圖像中位置靠前的一個(gè)對(duì)象的一個(gè)象素的Z-值可以取的一個(gè)單個(gè)步長(zhǎng)。
5.權(quán)利要求1所述的方法,其中在所述的調(diào)整步驟中通過比較一個(gè)區(qū)域內(nèi)的一個(gè)象素的Z-值與另一個(gè)區(qū)域內(nèi)的一個(gè)象素的Z-值來分析圖像中的象素的Z-值的趨勢(shì);并且當(dāng)分析的一個(gè)結(jié)果與一個(gè)預(yù)定的條件相符合時(shí),在所述的生成步驟中顛倒目標(biāo)象素的位移量和目標(biāo)象素的Z-值之間的一個(gè)數(shù)量關(guān)系。
6.權(quán)利要求1所述的方法,其中在所述的調(diào)整步驟中獲得包含一個(gè)目標(biāo)象素的一個(gè)區(qū)域內(nèi)的多個(gè)象素的Z-值的一個(gè)均值;并且用獲得的均值替換所述目標(biāo)象素的Z-值。
7.權(quán)利要求1所述的方法,其中在所述的調(diào)整步驟中獲得圖像中的所有象素的Z-值的一個(gè)分布以及圖像中所有象素的一個(gè)均值;并且用獲得的所述均值校正所述分布的偏差。
8.權(quán)利要求1所述的方法,其中在所述的調(diào)整步驟中參考所述的計(jì)算步驟中計(jì)算出的多個(gè)象素的Z-值,識(shí)別出由所述圖像數(shù)據(jù)表示的圖像中的至少一個(gè)對(duì)象;并且根據(jù)位于對(duì)應(yīng)于所述識(shí)別出的對(duì)象的一個(gè)區(qū)域內(nèi)的一個(gè)象素的Z-值,調(diào)整所述目標(biāo)象素的Z-值。
9.權(quán)利要求1所述的方法,其中在所述的調(diào)整步驟中,根據(jù)由用戶指定的一個(gè)參數(shù)值確定Z-值量化的步長(zhǎng)大小。
10.權(quán)利要求1所述的方法,其中在所述的調(diào)整步驟中,根據(jù)由用戶指定的一個(gè)參數(shù)值確定計(jì)算出的Z-值的一個(gè)上限或一個(gè)下限。
11.權(quán)利要求11所述的方法,進(jìn)一步包括獲得由多幅圖像組成的移動(dòng)圖像的步驟,并且其中根據(jù)每幅圖像生成一幅立體圖像,以便實(shí)時(shí)地生成對(duì)應(yīng)于移動(dòng)圖像的立體圖像。
12.一種生成立體圖像的立體圖像生成裝置包括一個(gè)計(jì)算裝置,用于根據(jù)多個(gè)象素的圖像數(shù)據(jù)計(jì)算多個(gè)象素的Z-值,所述多個(gè)象素形成一幅圖像,每個(gè)Z-值被分配給一個(gè)象素,并且每個(gè)Z-值表示對(duì)應(yīng)于所述一個(gè)象素的一個(gè)對(duì)象的深度;一個(gè)調(diào)整裝置,用于用不同于一個(gè)目標(biāo)象素的另一個(gè)象素的Z-值調(diào)整所述的計(jì)算裝置中獲得的目標(biāo)象素的Z-值;以及一個(gè)生成裝置,用于根據(jù)一個(gè)目標(biāo)象素的調(diào)整后的Z-值確定目標(biāo)象素的一個(gè)位移量,并且水平移動(dòng)所述目標(biāo)象素所述確定的位移量,以便生成右眼和左眼的圖像。
13.權(quán)利要求12所述的裝置,進(jìn)一步包括一個(gè)獲得裝置,用于從一個(gè)用戶獲得所述的調(diào)整裝置中所使用的一個(gè)參數(shù)。
14.權(quán)利要求13所述的裝置,其中參數(shù)表示所述Z-值的一個(gè)上限或一個(gè)下限。
15.權(quán)利要求13所述的裝置,其中參數(shù)表示所述Z-值量化的步長(zhǎng)大小。
16.權(quán)利要求13所述的裝置,進(jìn)一步包括儲(chǔ)存裝置,用于儲(chǔ)存用于右眼和左眼的圖像數(shù)據(jù);以及顯示裝置,用于根據(jù)一個(gè)預(yù)定的方案顯示由儲(chǔ)存在所述儲(chǔ)存裝置中的圖像數(shù)據(jù)表示的一幅圖像。
17.一種引起一臺(tái)計(jì)算機(jī)行使以下功能的計(jì)算機(jī)程序產(chǎn)品一個(gè)計(jì)算裝置,用于根據(jù)多個(gè)象素的圖像數(shù)據(jù)計(jì)算多個(gè)象素的Z-值,所述多個(gè)象素形成一幅圖像,每個(gè)Z-值被分配給一個(gè)象素,并且每個(gè)Z-值表示對(duì)應(yīng)于所述一個(gè)象素的一個(gè)對(duì)象的深度;一個(gè)調(diào)整裝置,用于用不同于一個(gè)目標(biāo)象素的另一個(gè)象素的Z-值調(diào)整所述的計(jì)算裝置中獲得的目標(biāo)象素的Z-值;以及一個(gè)生成裝置,用于根據(jù)一個(gè)目標(biāo)象素的調(diào)整后的Z-值確定目標(biāo)象素的一個(gè)位移量,并且水平所述移動(dòng)目標(biāo)象素所述確定的位移量,以便生成右眼和左眼的圖像。
全文摘要
在一個(gè)3D圖像生成裝置1中根據(jù)2D圖像數(shù)據(jù)的灰度值計(jì)算象素的深度值(Z-值)。接下來,在Z-值上執(zhí)行一個(gè)顛倒確定、平滑、分布調(diào)整、局部調(diào)整和類似的操作。接下來,根據(jù)最終獲得的象素的Z-值來確定象素的視差,并且根據(jù)視差移動(dòng)象素,以便生成一幅立體圖像的數(shù)據(jù)。
文檔編號(hào)G06K9/00GK1675937SQ0381960
公開日2005年9月28日 申請(qǐng)日期2003年8月20日 優(yōu)先權(quán)日2002年8月20日
發(fā)明者江良一成 申請(qǐng)人:江良一成
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宁武县| 佛坪县| 蓬溪县| 平山县| 唐山市| 大方县| 海阳市| 高平市| 桦甸市| 宁化县| 嘉鱼县| 宜昌市| 兴化市| 齐齐哈尔市| 嫩江县| 桑日县| 康保县| 弋阳县| 文水县| 永济市| 曲麻莱县| 隆德县| 航空| 邢台市| 广宁县| 房产| 徐闻县| 尼玛县| 托克托县| 鸡西市| 肃北| 曲松县| 邵阳市| 南郑县| 原阳县| 山丹县| 嘉禾县| 西畴县| 芦溪县| 宁明县| 达日县|