專利名稱:圖像處理裝置、圖像處理系統(tǒng)及圖像處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于從拍攝裝置所拍攝的圖像中檢測(cè)規(guī)定的拍攝對(duì)象的圖像處理裝置、圖像處理系統(tǒng)及圖像處理方法。
背景技術(shù):
目前,已經(jīng)存在從攝像機(jī)等拍攝裝置所拍攝的圖像(拍攝圖像)中檢測(cè)規(guī)定的拍攝對(duì)象的技術(shù)。例如,非專利文獻(xiàn)I中記載了 在增強(qiáng)現(xiàn)實(shí)技術(shù)中,對(duì)用攝像機(jī)所拍攝到的 拍攝圖像中包含的標(biāo)記進(jìn)行圖像識(shí)別處理的技術(shù)。具體而言,非專利文獻(xiàn)I中記載著通過(guò)用固定的閾值對(duì)拍攝圖像進(jìn)行二值化處理,來(lái)提取連接區(qū)域,并從所提取出的連接區(qū)域中選擇大小及形狀合適的圖像作為標(biāo)記候補(bǔ),并對(duì)標(biāo)記候補(bǔ)進(jìn)行模式匹配,從而檢測(cè)出標(biāo)記。然而,采用記載于非專利文獻(xiàn)I中的檢測(cè)標(biāo)記的方法,在某些情況下(例如,明亮、昏暗、標(biāo)記的一部分被用戶的手指等遮蔽、標(biāo)記相對(duì)攝像機(jī)不朝向正面、強(qiáng)烈的光線被標(biāo)記反射等情況下)不一定能夠以高精度或較小的處理負(fù)荷來(lái)檢測(cè)標(biāo)記。并且,記載于非專利文獻(xiàn)I的檢測(cè)標(biāo)記的方法不能防止標(biāo)記的檢測(cè)位置的抖動(dòng)。非專利文獻(xiàn)加藤博一,MarkBillinghurst,淺野浩一,橘啓八郎、「^ 一力一追跡C基3 <拡張現(xiàn)実感7 f A iQ々V」O — 3 >」(基于標(biāo)記追蹤的增強(qiáng)現(xiàn)實(shí)系統(tǒng)及其校準(zhǔn))、日本^ U U f彳學(xué)會(huì)論文誌Vol. 4No. 4、1999年(日本虛擬現(xiàn)實(shí)學(xué)會(huì)論文雜志,Vol. 4No. 4,1999年)
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種能夠以較高的精度或較小的處理負(fù)荷來(lái)檢測(cè)出圖像中的規(guī)定物體或圖案的圖像處理裝置、圖像處理系統(tǒng)及圖像處理方法,或者能夠防止或減輕所檢測(cè)的規(guī)定物體或圖案的位置的微小抖動(dòng)的圖像處理裝置、圖像處理系統(tǒng)及圖像處理方法。為了解決上述技術(shù)問(wèn)題,本發(fā)明采用以下構(gòu)成。本發(fā)明的第一構(gòu)成例是一種圖像處理裝置,包括圖像獲取單元、邊界像素檢測(cè)單元、直線生成單元、頂點(diǎn)檢測(cè)單元、位置姿勢(shì)計(jì)算單元、虛擬攝像機(jī)設(shè)定單元、及顯示控制單
J Li o上述圖像獲取單元用于從拍攝裝置中獲取圖像。上述邊界像素檢測(cè)單元從上述圖像中檢測(cè)出表示物體或者顯示在該物體上的圖案的輪廓的一系列的邊界像素。上述直線生成單元基于上述一系列的邊界像素來(lái)生成多條直線。上述頂點(diǎn)檢測(cè)單元基于上述多條直線來(lái)檢測(cè)上述輪廓的頂點(diǎn)。上述位置姿勢(shì)計(jì)算單元基于上述頂點(diǎn)來(lái)計(jì)算上述拍攝裝置與上述物體的相對(duì)位置及姿勢(shì)。上述虛擬攝像機(jī)設(shè)定單元根據(jù)上述位置及姿勢(shì)來(lái)設(shè)定虛擬空間內(nèi)的虛擬攝像機(jī)。上述顯示控制單元使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過(guò)用上述虛擬攝像機(jī)拍攝虛擬空間而得到的。根據(jù)上述構(gòu)成例,能夠以較高的精度檢測(cè)出包含在圖像中的物體或圖案的輪廓的頂點(diǎn)。另外,作為變形例,上述直線生成單元可以包括將同一直線上的彼此分離的多條線段統(tǒng)合成一條線段的直線統(tǒng)合部。根據(jù)上述變形例,即使在圖像中包含的物體或圖案的任何一個(gè)邊的輪廓中斷的情況下,也能夠生成對(duì)應(yīng)于該邊的一條線段。另外,作為其它變形例,上述直線生成單元也可以包括第一判斷部及直線計(jì)算部,該第一判斷部判斷上述一系列的邊界像素中的一部分邊界像素是否在同一直線上;該直線計(jì)算部基于由上述第一判斷部判斷為是在同一直線上的一部分邊界像素來(lái)計(jì)算直線。 另外,作為其它變形例,上述直線計(jì)算部也可以基于由上述第一判斷部判斷為是在同一直線上的多個(gè)邊界像素,并用最小二乘法來(lái)計(jì)算各條直線。根據(jù)上述變形例,能夠以較高的精度檢測(cè)出輪廓的頂點(diǎn)。另外,即使在檢測(cè)出的物體或圖案的輪廓的頂點(diǎn)附近的邊界像素因周邊環(huán)境的狀況而大幅偏離的情況下,也可以顯示出抖動(dòng)較小的虛擬空間圖像。另外,作為其它變形例,上述直線生成單元也可以通過(guò)執(zhí)行以上述一系列的邊界像素中的任意一個(gè)邊界像素為起點(diǎn)、沿著順時(shí)針?lè)较蚝湍鏁r(shí)針?lè)较蛑械哪骋环较蜃粉櫳鲜鲚喞菢硬粩嗌苫蚋轮本€的處理,來(lái)基于上述一系列的邊界像素生成多條直線。另外,作為其它變形例,上述直線生成單元也可以包括判斷部,該判斷部判斷是否能夠繼續(xù)按同一追蹤方向來(lái)生成或更新直線,若上述判斷部判斷為不能繼續(xù)按同一追蹤方向來(lái)生成或更新上述直線,則上述直線生成單元執(zhí)行從上述起點(diǎn)開(kāi)始、按與現(xiàn)在為止的追蹤方向相反的追蹤方向來(lái)不斷生成或更新直線的處理。另外,作為其它變形例,上述直線生成單元也可以包括最初直線生成部、比較部、直線更新部、新直線生成部、及處理開(kāi)始部。上述最初直線生成部基于上述起點(diǎn)的邊界像素、和在順時(shí)針?lè)较騻?cè)和逆時(shí)針?lè)较騻?cè)中的某一側(cè)與該起點(diǎn)的邊界像素相連的規(guī)定數(shù)目的邊界像素,來(lái)生成最初的直線;上述比較部將已經(jīng)生成或更新后的直線的方向、與假定直線的方向進(jìn)行比較,其中,上述假定直線是基于在順時(shí)針?lè)较騻?cè)和逆時(shí)針?lè)较騻?cè)中的某一側(cè)與對(duì)應(yīng)于上述直線的邊界像素相連的規(guī)定數(shù)目的邊界像素的直線;若上述比較部判斷為上述直線和上述假定直線是在同一直線上,上述直線更新部則基于上述直線及對(duì)應(yīng)于上述假定直線的多個(gè)邊界像素來(lái)更新上述直線;若上述比較部判斷為上述直線和上述假定直線不在同一直線上、并且,與上述直線和上述假定直線的交點(diǎn)對(duì)應(yīng)的上述輪郭的頂點(diǎn)為凸角,上述新直線生成部則基于上述假定直線來(lái)生成新的直線;若上述比較部判斷為上述直線與上述假定直線不在同一直線上、并且,與上述直線和上述假定直線的交點(diǎn)對(duì)應(yīng)的上述輪郭的頂點(diǎn)為凹角,上述處理開(kāi)始部則開(kāi)始進(jìn)行從上述起點(diǎn)的邊界像素起,按與現(xiàn)在為止的追蹤方向相反的追蹤方向來(lái)生成或更新直線的處理。另外,作為其它變形例,上述圖像處理裝置還可以包括直線選擇單元,該直線選擇單元從上述直線生成單元所生成的多條直線中選擇規(guī)定數(shù)目的直線,上述頂點(diǎn)檢測(cè)單元也可以檢測(cè)出上述直線選擇單元所選擇的上述規(guī)定數(shù)目的直線的交點(diǎn),并將其作為上述輪郭的頂點(diǎn)。根據(jù)上述變形例,能夠排除不必要的直線。另外,作為其它變形例,上述直線選擇單元也可以從上述直線生成單元所生成的多條直線中選擇線段長(zhǎng)度較長(zhǎng)的規(guī)定數(shù)目的直線。根據(jù)上述變形例,能夠排除太短的直線。本發(fā)明的第二構(gòu)成例是一種圖像處理方法,包括圖像獲取步驟、邊界像素檢測(cè)步驟、直線生成步驟、頂點(diǎn)檢測(cè)步驟、位置姿勢(shì)計(jì)算步驟、虛擬攝像機(jī)設(shè)定步驟及顯示控制步驟。在上述圖像獲取步驟中,從拍攝裝置中獲取圖像;在上述邊界像素檢測(cè)步驟中,從上述圖像中檢測(cè)出一系列的邊界像素,其中,該邊界像素表示物體或者顯示在該物體上的圖案的輪郭;在上述直線生成步驟中,基于上述一系列的邊界像素來(lái)生成多條直線;在上述頂點(diǎn)檢測(cè)步驟中,基于上述多條直線來(lái)檢測(cè)上述輪郭的頂點(diǎn);在上述位置姿勢(shì)計(jì)算步驟中,基于上述頂點(diǎn)來(lái)計(jì)算上述拍攝裝置與上述物體的相對(duì)位置及姿勢(shì);在上述虛擬攝像機(jī)設(shè)定步驟中,根據(jù)上述位置及姿勢(shì)來(lái)設(shè)定虛擬空間內(nèi)的虛擬攝像機(jī);在上述顯示控制步驟中,使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過(guò)用上述虛擬攝像機(jī)拍攝虛擬空間而得到的。
本發(fā)明的第三構(gòu)成例是一種具備圖像處理裝置和標(biāo)記的圖像處理系統(tǒng)。上述圖像處理裝置包括拍攝部、圖像獲取單元、邊界像素檢測(cè)單元、直線生成單元、頂點(diǎn)檢測(cè)單元、位置姿勢(shì)計(jì)算單元、虛擬攝像機(jī)設(shè)定單元、及顯示控制單元。上述拍攝部拍攝上述標(biāo)記;上述圖像獲取單元從上述拍攝部獲取圖像;上述邊界像素檢測(cè)單元從上述圖像檢測(cè)出一系列的邊界像素,其中該邊界像素表示上述標(biāo)記或者顯示在上述標(biāo)記上的圖案的輪郭;上述直線生成單元基于上述一系列的邊界像素來(lái)生成多條直線;上述頂點(diǎn)檢測(cè)單元基于上述多條直線來(lái)檢測(cè)上述輪郭的頂點(diǎn);上述位置姿勢(shì)計(jì)算單元基于上述頂點(diǎn)來(lái)計(jì)算上述拍攝裝置與上述物體的相對(duì)位置及姿勢(shì);上述虛擬攝像機(jī)設(shè)定單元根據(jù)上述位置及姿勢(shì)來(lái)設(shè)定虛擬空間內(nèi)的虛擬攝像機(jī);上述顯示控制單元使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過(guò)用上述虛擬攝像機(jī)拍攝虛擬空間而得到的。根據(jù)本發(fā)明的上述各構(gòu)成例,能夠以較高的精度檢測(cè)出圖像中的規(guī)定物體或圖案。在參照附圖進(jìn)行下述詳細(xì)的說(shuō)明之后,本發(fā)明的各種目的、特征、方面、效果將會(huì)更加明確。
圖I是在開(kāi)啟狀態(tài)下的游戲裝置10的正視圖。圖2A是閉合狀態(tài)下的游戲裝置10的左視圖。圖2B是閉合狀態(tài)下的游戲裝置10的正視圖。圖2C是閉合狀態(tài)下的游戲裝置10的右視圖。圖2D是閉合狀態(tài)下的游戲裝置10的后視圖。圖3是表示游戲裝置10的內(nèi)部構(gòu)成的方框圖。圖4是表示顯示在上部IXD22的屏幕上的圖像的圖。圖5是表示標(biāo)記50的圖。圖6是表示由外側(cè)拍攝部(左)23a或外側(cè)拍攝部(右)23b拍攝的實(shí)拍圖像的圖。圖7是表示實(shí)拍圖像中的注目像素的選擇順序的圖。圖8是用于說(shuō)明邊界判斷閾值的確定方法的圖。
圖9是用于說(shuō)明邊界判斷閾值的確定方法的圖。圖10是用于說(shuō)明邊界判斷閾值的確定方法的圖。圖11是用于說(shuō)明邊界判斷閾值的確定方法的圖。圖12是用于說(shuō)明邊界判斷閾值的確定方法的圖。圖13是用于說(shuō)明邊界追蹤處理的圖。圖14是用于說(shuō)明邊界追蹤處理的圖。圖15是用于說(shuō)明邊界追蹤處理的圖。圖16是用于說(shuō)明邊界追蹤處理的圖。 圖17是用于說(shuō)明邊界追蹤處理的圖。圖18是用于說(shuō)明邊界追蹤處理的圖。圖19是用于說(shuō)明邊界追蹤處理的圖。圖20是用于說(shuō)明邊界追蹤處理的圖。圖21是用于說(shuō)明邊界追蹤處理的圖。圖22是用于說(shuō)明直線計(jì)算處理的圖。圖23是用于說(shuō)明直線計(jì)算處理的圖。圖24是用于說(shuō)明直線計(jì)算處理的圖。圖25是用于說(shuō)明直線計(jì)算處理的圖。圖26是用于說(shuō)明直線計(jì)算處理的圖。圖27是用于說(shuō)明直線計(jì)算處理的圖。圖28是用于說(shuō)明直線計(jì)算處理的圖。圖29是用于說(shuō)明直線計(jì)算處理的圖。圖30是用于說(shuō)明直線計(jì)算處理的圖。圖31是用于說(shuō)明直線計(jì)算處理的圖。圖32是用于說(shuō)明直線計(jì)算處理的圖。圖33是用于說(shuō)明直線計(jì)算處理的圖。圖34是用于說(shuō)明直線計(jì)算處理的圖。圖35是用于說(shuō)明直線計(jì)算處理的圖。圖36是用于說(shuō)明直線計(jì)算處理的圖。圖37是用于說(shuō)明直線統(tǒng)合處理的圖。圖38是用于說(shuō)明直線統(tǒng)合處理的圖。圖39是用于說(shuō)明直線統(tǒng)合處理的圖。圖40是用于說(shuō)明直線選擇處理的圖。圖41是用于說(shuō)明直線選擇處理的圖。圖42是用于說(shuō)明頂點(diǎn)計(jì)算處理的圖。圖43是用于說(shuō)明頂點(diǎn)計(jì)算處理的圖。圖44是用于說(shuō)明粗略判別處理中的第一除外條件的圖。圖45是用于說(shuō)明粗略判別處理中的第二除外條件的圖。圖46是用于說(shuō)明粗略判別處理中的第三除外條件的圖。圖47是用于說(shuō)明粗略判別處理中的第四除外條件的圖。
圖48是用于說(shuō)明圖案判別處理中所使用的模式定義數(shù)據(jù)的圖。圖49是用于說(shuō)明圖案判別處理中所使用的模式定義數(shù)據(jù)的圖。圖50是表示包含標(biāo)記50的實(shí)拍圖像的圖。圖51是表示實(shí)拍圖像中的采樣點(diǎn)的位置的確定方法的一例的圖。圖52是用于說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第一確定方法的圖。圖53是用于說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第一確定方法的圖。圖54是用于說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第一確定方法的圖。圖55是用于說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第一確定方法的圖。 圖56是用于說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第一確定方法的圖。圖57是用于說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第一確定方法的圖。圖58是用于說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第一確定方法的圖。圖59是用于說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第二確定方法的圖。圖60是用于說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第二確定方法的圖。圖61是用于說(shuō)明在當(dāng)前的實(shí)拍圖像中未檢測(cè)出標(biāo)記的輪廓及頂點(diǎn)的情況下執(zhí)行的圖案判別處理的圖。圖62是用于說(shuō)明在當(dāng)前的實(shí)拍圖像中未檢測(cè)出標(biāo)記的輪廓及頂點(diǎn)的情況下執(zhí)行的圖案判別處理的圖。圖63是用于說(shuō)明標(biāo)記位置修改處理的圖。圖64是用于說(shuō)明標(biāo)記位置修改處理的圖。圖65是用于說(shuō)明標(biāo)記位置修改處理的圖。圖66是用于說(shuō)明按照實(shí)拍圖像上的標(biāo)記的大小而變更閾值Dl及閾值D2的大小的理由的圖。圖67是用于說(shuō)明按照實(shí)拍圖像上的標(biāo)記的大小而變更閾值Dl及閾值D2的大小的理由的圖。圖68是表示閾值Dl的確定方法的圖。圖69是表示閾值D2的確定方法的圖。圖70是用于說(shuō)明標(biāo)記位置修改處理的變形例的圖。圖71是用于說(shuō)明標(biāo)記位置修改處理的另一個(gè)變形例的圖。圖72是用于說(shuō)明標(biāo)記的對(duì)應(yīng)關(guān)系的判別方法的圖。圖73是主存儲(chǔ)器32的存儲(chǔ)分配圖。圖74是表示圖像識(shí)別處理整體的流程的流程圖。圖75是表示輪廓檢測(cè)處理的流程的流程圖。圖76是表示頂點(diǎn)檢測(cè)處理的流程的流程圖。圖77是表示粗略判別處理的流程的流程圖。圖78是表示圖案判別處理的流程的流程圖。圖79是表示標(biāo)記位置修改處理的流程的流程圖。
具體實(shí)施例方式〈游戲裝置的構(gòu)成〉
以下,對(duì)本發(fā)明的一個(gè)實(shí)施方式所涉及的游戲裝置進(jìn)行說(shuō)明。游戲裝置10是便攜式游戲裝置。如圖I及圖2A D所示,游戲裝置10包括下殼體11及上殼體21。下殼體11與上殼體21能夠開(kāi)合(能夠折疊)地連接?!聪職んw的說(shuō)明〉如圖I及圖2A D所示,在下殼體11上設(shè)置有下部IXD(Liquid CrystalDisplay :液晶顯示裝置)12、觸摸面板13、各個(gè)操作按鈕14A 14L、模擬搖桿15、LED16A 16B、插入口 17及傳聲器用孔18。觸摸面板13被裝設(shè)在下部IXD12的屏幕上。在下殼體11的上側(cè)面設(shè)置有用于收納觸控筆28的插入口 17(圖I及圖2D所示的虛線)。在下殼體11的內(nèi)側(cè)面(主面)設(shè)置有十字按鈕14A(方向輸入按鈕14A)、按鈕 14B、按鈕14C、按鈕14D、按鈕14E、電源按鈕14F、選擇按鈕14J、HOME按鈕14K及啟動(dòng)按鈕14L。模擬搖桿15是指示方向的器件。在下殼體11的內(nèi)側(cè)面設(shè)置有傳聲器用孔18。在傳聲器用孔18的下部設(shè)置有后述的作為聲音輸入裝置的傳聲器42 (參照?qǐng)D3)。如圖2B及D所示,下殼體11的上側(cè)面設(shè)置有L按鈕14G及R按鈕14H。另外,如圖2A所示,在下殼體11的左側(cè)面設(shè)置有用于調(diào)節(jié)游戲裝置10所具備的揚(yáng)聲器43 (參照?qǐng)D3)的音量的音量按鈕141。如圖2A所示,在下殼體11的左側(cè)面設(shè)置有可開(kāi)合的翻蓋部11C。該翻蓋部IlC的內(nèi)側(cè)設(shè)置有用于實(shí)現(xiàn)游戲裝置10與數(shù)據(jù)保存用外部存儲(chǔ)器45之間的電連接的連接器。如圖2D所示,在下殼體11的上側(cè)面設(shè)置有用于插入外部存儲(chǔ)器44的插入口 11D。如圖I及圖2C所示,在下殼體11的下側(cè)面設(shè)置有向用戶通知游戲裝置10的電源的(^/0 狀況的第一1^016八,在下殼體11的右側(cè)面設(shè)置有向用戶通知游戲裝置10的無(wú)線通信的建立狀況的第二 LED16B。游戲裝置10與其它設(shè)備之間能夠進(jìn)行無(wú)線通信,在下殼體11的右側(cè)面設(shè)置有使該無(wú)線通信的功能有效/無(wú)效的無(wú)線開(kāi)關(guān)19 (參照?qǐng)D2C)?!瓷蠚んw的說(shuō)明〉如圖I及如圖2所示,上殼體21設(shè)置有:上部LCD (Liquid Crystal Display :液晶顯示裝置)22、外側(cè)拍攝部23 (外側(cè)拍攝部(左)23a及外側(cè)拍攝部(右)23b)、內(nèi)側(cè)拍攝部24、3D調(diào)整開(kāi)關(guān)25及3D指示器26。上部IXD22是能夠顯示能夠產(chǎn)生立體視覺(jué)的圖像的顯示裝置。具體地,它是使用視差屏障方式的能夠產(chǎn)生裸眼立體視覺(jué)的顯示裝置。上部LCD22利用視差屏障,使用戶的左眼看到左眼用圖像,右眼看到右眼用圖像,由此能夠顯示對(duì)于用戶而言具有立體感的立體圖像(能夠產(chǎn)生立體視覺(jué)的圖像)。此外,上部IXD22能夠使上述視差屏障無(wú)效,在使視差屏障無(wú)效的情況下,能夠?qū)D像進(jìn)行平面顯示。這樣,上部IXD22是能夠在顯示立體視覺(jué)圖像的立體顯示模式、與對(duì)圖像進(jìn)行平面顯示(顯示平面視覺(jué)圖像)的平面顯示模式之間進(jìn)行切換的顯示裝置。該顯示模式的切換例如可以通過(guò)后述的3D調(diào)節(jié)開(kāi)關(guān)25來(lái)進(jìn)行。外側(cè)拍攝部23是設(shè)置于上殼體21的外側(cè)面21D的兩個(gè)拍攝部(23a及23b)的總稱。外側(cè)拍攝部(左)23a和外側(cè)拍攝部(右)23b根據(jù)游戲裝置10所執(zhí)行的程序,能夠作為立體攝像機(jī)使用。
內(nèi)側(cè)拍攝部24被設(shè)置于上殼體21的內(nèi)側(cè)面(主面)21B,并且是將該內(nèi)側(cè)面的向內(nèi)的法線方向作為拍攝方向的拍攝部。3D調(diào)節(jié)開(kāi)關(guān)25是滑動(dòng)開(kāi)關(guān),并且如上所述那樣是用于切換上部IXD22的顯示模式的開(kāi)關(guān)。并且,3D調(diào)節(jié)開(kāi)關(guān)25用于調(diào)節(jié)上部IXD22所顯示的能夠產(chǎn)生立體視覺(jué)的圖像(立體圖像)的立體感。3D調(diào)節(jié)開(kāi)關(guān)25的滑塊25a能夠在規(guī)定方向(上下方向)上滑動(dòng)到任何位置,根據(jù)該滑塊25a的位置來(lái)設(shè)定上部IXD22的顯示模式。并且,根據(jù)滑塊25a的位置來(lái)調(diào)節(jié)立體圖像的立體感。 3D指示器26是表示上部IXD22是否是立體顯示模式的LED。另外,在上殼體21的內(nèi)側(cè)面設(shè)置有揚(yáng)聲器孔21E。從該揚(yáng)聲器孔21E輸出來(lái)自后述的揚(yáng)聲器43的聲音。<游戲裝置10的內(nèi)部構(gòu)成>下面,參照?qǐng)D3,說(shuō)明游戲裝置10的內(nèi)部電結(jié)構(gòu)。如圖3所示,游戲裝置I除了上述的各個(gè)部以外,還具備信息處理部31、主存儲(chǔ)器32、外部存儲(chǔ)器接口(外部存儲(chǔ)器I/F) 33、數(shù)據(jù)保存用外部存儲(chǔ)器I/F34、數(shù)據(jù)保存用內(nèi)部存儲(chǔ)器35、無(wú)線通信模塊36、局部通信模塊37、實(shí)時(shí)時(shí)鐘(RTC) 38、加速度傳感器39、電源電路40及接口電路(I/F電路)41等電子元件。信息處理部31包括用于執(zhí)行規(guī)定的程序的中央處理器(Central ProcessingUnit :CPU) 311、進(jìn)行圖像處理的圖形處理器(Graphics Processing Unit :GPU) 312、視頻RAM (Video RAM,VRAM) 313等。CPU311通過(guò)執(zhí)行保存在游戲裝置10內(nèi)的存儲(chǔ)器(例如連接于外部存儲(chǔ)器I/F33的外部存儲(chǔ)器44或數(shù)據(jù)保存用內(nèi)部存儲(chǔ)器35)中的程序,來(lái)執(zhí)行與該程序相應(yīng)的處理。此外,由CPU311所執(zhí)行的程序可以通過(guò)與其他設(shè)備進(jìn)行通信而從其他設(shè)備獲得。GPU312按照來(lái)自CPU311的指令來(lái)生成圖像,并繪制到VRAM313。繪制到VRAM313的圖像被輸出到上部IXD22及/或下部IXD2,從而在上部IXD22及/或下部IXD2顯示該圖像。外部存儲(chǔ)器I/F33是用于與外部存儲(chǔ)器44拆卸自由地連接的接口。并且,數(shù)據(jù)保存用外部存儲(chǔ)器I/F34是用于與數(shù)據(jù)保存用外部存儲(chǔ)器45拆卸自由地連接的接口。主存儲(chǔ)器32是用作信息處理部31 (的CPU311)的工作區(qū)或緩沖區(qū)的易失性存儲(chǔ)
>J-U裝直。外部存儲(chǔ)器44是用于存儲(chǔ)信息處理部31所執(zhí)行的程序等的非易失性存儲(chǔ)裝置。外部存儲(chǔ)器44例如由讀取專用型的半導(dǎo)體存儲(chǔ)器構(gòu)成。數(shù)據(jù)保存用外部存儲(chǔ)器45由非易失性的可讀寫的存儲(chǔ)器(例如NAND閃存)構(gòu)成,用于儲(chǔ)存任意的數(shù)據(jù)。數(shù)據(jù)保存用內(nèi)部存儲(chǔ)器35由可讀寫的非易失性存儲(chǔ)器(例如NAND型閃存)構(gòu)成,用于儲(chǔ)存規(guī)定的數(shù)據(jù)。例如,數(shù)據(jù)保存用內(nèi)部存儲(chǔ)器35中保存有利用經(jīng)由無(wú)線通信模塊36的無(wú)線通信而下載的數(shù)據(jù)或程序。無(wú)線通信模塊36具有例如采用基于IEEE802. 11. b/g規(guī)格的方式來(lái)接入無(wú)線LAN的功能。此外,局部通信模塊37具有通過(guò)規(guī)定的通信方式(例如,基于獨(dú)自的協(xié)議的通信或紅外通信),而在同種游戲裝置之間進(jìn)行無(wú)線通信的功能。加速度傳感器39檢測(cè)沿三個(gè)軸(xyz軸)方向的直線方向的加速度(直線加速度)的大小。信息處理部31通過(guò)接收表示由加速度傳感器39檢測(cè)出的加速度的數(shù)據(jù)(加速度數(shù)據(jù)),能夠檢測(cè)出游戲裝置10的姿勢(shì)或動(dòng)作。RTC38對(duì)時(shí)間進(jìn)行計(jì)時(shí),并將計(jì)時(shí)結(jié)果輸出給信息處理部31。信息處理部31基于RTC38的計(jì)時(shí)結(jié)果來(lái)計(jì)算當(dāng)前時(shí)刻(日期)。電源電路40控制來(lái)自游戲裝置10所具有的電源(充電式電池)的電力,并向游戲裝置10的各個(gè)元件供電。I/F電路41上連接有觸摸面板13、傳聲器42以及揚(yáng)聲器43。I/F電路41包括對(duì)傳聲器42及揚(yáng)聲器43 (放大器)進(jìn)行控制的聲音控制電路、以及對(duì)觸摸面板進(jìn)行控制的觸摸面板控制電路。聲音控制電路對(duì)聲音信號(hào)進(jìn)行A/D轉(zhuǎn)換以及D/A轉(zhuǎn)換,或?qū)⒙曇粜盘?hào)轉(zhuǎn)換成規(guī)定格式的聲音數(shù)據(jù)。觸摸面板控制電路基于來(lái)自觸摸面板13的信號(hào)來(lái)生成規(guī)定格式的觸摸位置數(shù)據(jù),并將該數(shù)據(jù)輸出給信息處理部31。信息處理部31通過(guò)獲取觸摸位置數(shù)據(jù),能夠得知對(duì)觸摸面板13進(jìn)行了輸入的位置。
操作按鈕14包括上述各個(gè)操作按鈕14A 14L,從操作按鈕14向信息處理部31輸出表示對(duì)各個(gè)操作按鈕14A 141進(jìn)行輸入的狀況(是否被按下)的操作數(shù)據(jù)。下部IXD12及上部IXD22連接于信息處理部31。具體地,信息處理部31連接于上部LCD22的LCD控制器(未圖示),并對(duì)該LCD控制器進(jìn)行視差屏障的0N/0FF控制。當(dāng)上部IXD22的視差屏障為ON時(shí),信息處理部31的VRAM313中所儲(chǔ)存的右眼用圖像和左眼用圖像被輸出到上部LCD22。更具體地,LCD控制器通過(guò)交替地執(zhí)行對(duì)右眼用圖像讀出縱向上的I列像素?cái)?shù)據(jù)的處理、和對(duì)左眼用圖像讀出縱向上的I列像素?cái)?shù)據(jù)的處理,來(lái)從VRAM313讀出右眼用圖像和左眼用圖像。由此,右眼用圖像和左眼用圖像被分割成像素在縱向按列排列的帶狀圖像,被分割后的右眼用圖像的帶狀圖像和左眼用圖像的帶狀圖像交替地配置的圖像被顯示在上部IXD22的屏幕上。由于用戶是隔著上部IXD22的視差屏障來(lái)看該圖像,所以右眼能夠看到右眼用圖像,左眼能夠看到左眼用圖像。從而,在上部IXD22的屏幕上所顯示的圖像能夠產(chǎn)生立體視覺(jué)。外側(cè)拍攝部23及內(nèi)側(cè)拍攝部24按照信息處理部31的指示來(lái)拍攝圖像,并將所拍攝的圖像數(shù)據(jù)輸出給信息處理部31。3D調(diào)節(jié)開(kāi)關(guān)25將相應(yīng)于滑塊25a的位置的電信號(hào)發(fā)送給信息處理部31。信息處理部31控制3D指示器26的亮燈。例如,當(dāng)上部IXD22是立體顯示模式時(shí),信息處理部31使3D指示器26亮燈。<圖像處理的概要>下面,參照?qǐng)D4 圖72,對(duì)于在游戲裝置10中所執(zhí)行的圖像處理的概要進(jìn)行說(shuō)明。游戲裝置10中所執(zhí)行的圖像處理包括圖像識(shí)別處理及圖像生成處理。圖像識(shí)別處理是檢測(cè)由攝像機(jī)(外側(cè)拍攝部(左)23a或外側(cè)拍攝部(右)23b)拍攝的圖像(實(shí)拍圖像)中所包含的標(biāo)記的位置的處理。圖像生成處理是利用圖像識(shí)別處理的結(jié)果來(lái)生成應(yīng)顯示在上部IXD22上的圖像的處理。游戲裝置10的CPU311利用圖像識(shí)別處理的結(jié)果,在上部IXD22上顯示出猶如在現(xiàn)實(shí)世界中的標(biāo)記的周圍(例如在標(biāo)記上)實(shí)際存在虛擬對(duì)象那樣的圖像。例如,圖4的例中,在游戲裝置10的上部IXD22上,顯示出似乎在桌子上的標(biāo)記50上實(shí)際存在模擬小狗的虛擬對(duì)象60的圖像。這樣的圖像是通過(guò)對(duì)攝像機(jī)所拍攝的實(shí)拍圖像與虛擬對(duì)象60的圖像(虛擬空間圖像)進(jìn)行合成而得到的。虛擬空間圖像對(duì)應(yīng)于配置于虛擬空間中的虛擬攝像機(jī)而被繪制,虛擬空間中的虛擬攝像機(jī)與虛擬對(duì)象之間的位置關(guān)系(相對(duì)位置及姿勢(shì))被實(shí)時(shí)地控制為,和現(xiàn)實(shí)空間中的攝像機(jī)(外側(cè)拍攝部(左)23a或外側(cè)拍攝部(右)23b)與標(biāo)記50之間的位置關(guān)系相一致。由此,可以得到虛擬對(duì)象60似乎實(shí)際存在于現(xiàn)實(shí)空間那樣的圖像。如圖5所示,標(biāo)記50為方形,具有外周的白色區(qū)域和由白色區(qū)域圍繞的黑色區(qū)域,在黑色區(qū)域的內(nèi)部畫出了規(guī)定的內(nèi)部圖形(在此作為一個(gè)例子是箭頭)。此外,雖然在本實(shí)施方式中使用了如圖5所示的標(biāo)記50,但是這只不過(guò)是一個(gè)例子,也可以使用其它形狀、其它圖樣、其它顏色的標(biāo)記。例如,也可以是在外周的黑色區(qū)域的內(nèi)部設(shè)有白色區(qū)域。另外,取代白色區(qū)域或黑色區(qū)域,也可以設(shè)定其它顏色的區(qū)域,但是,最好使用明暗對(duì)比度高的顏色組合,以便進(jìn)行后述的輪廓檢測(cè)處理。圖6是攝像機(jī)(外側(cè)拍攝部(左)23a或外側(cè)拍攝部(右)23b)所拍攝的圖像(實(shí)拍圖像)的一例。實(shí)拍圖像例如由512像素(水平方向)X384像素(垂直方向)構(gòu)成。
為了從如圖6所示的實(shí)拍圖像中檢測(cè)出標(biāo)記50的位置,在本實(shí)施方式中進(jìn)行如下所述的處理。(I)輪廓檢測(cè)處理(2)頂點(diǎn)檢測(cè)處理(3)粗略判別處理(4)圖案判別處理(5)標(biāo)記位置修改處理〈輪廓檢測(cè)處理〉首先說(shuō)明輪廓檢測(cè)處理。輪廓檢測(cè)處理是在實(shí)拍圖像中檢測(cè)畫在標(biāo)記50上的圖案的輪廓(如圖5所示的白色區(qū)域和黑色區(qū)域的界線)的處理。本實(shí)施方式中,首先,在實(shí)拍圖像中,將(16,16)的坐標(biāo)所示的像素作為注目像素,根據(jù)該注目像素的亮度值和從該注目像素的左鄰像素起向左數(shù)第八個(gè)像素(8,16)的亮度值,來(lái)判斷在該兩個(gè)像素之間的某處是否存在邊界(左側(cè)為白色區(qū)域而右側(cè)為黑色區(qū)域的邊界)(判斷方法的詳情將于后述)。然后,在判斷為不存在邊界的情況下,如圖7所示,將從當(dāng)前的注目像素(16,16)的右鄰像素起向右數(shù)第八個(gè)像素(24,16)作為新的注目像素,并根據(jù)該注目像素的亮度值、和從該注目像素的左鄰像素起向左數(shù)第八個(gè)像素(即,之前的注目像素(16,16))的亮度值來(lái)判斷該兩個(gè)像素之間的某處是否存在邊界。以后,一邊依次更新注目像素,一邊進(jìn)行同樣的處理。在Y坐標(biāo)值為16的那一行上處理完畢之后,在從該行起向下數(shù)第16行(即Y坐標(biāo)值為32的那一行)上進(jìn)行同樣的處理。另外,上述的選擇注目像素的方法只不過(guò)是一例,不局限于此。以下說(shuō)明中,將注目像素表示為像素P (n),將從注目像素的左鄰像素起向左數(shù)第k個(gè)像素表示為像素P(n-k),將從注目像素的右鄰像素起向右數(shù)第k個(gè)像素表示為像素P (n+k)。并且,將注目像素的亮度值表示為L(zhǎng) (n),將從注目像素的左鄰像素起向左數(shù)第k個(gè)像素的亮度值表示為L(zhǎng)(n-k),將從注目像素的右鄰像素起向右數(shù)第k個(gè)像素的亮度值表示為 L (n+k)。如圖8所示,基于L(n_8)和L(n)來(lái)判斷在注目像素(即像素P(n))與從注目像素的左鄰像素起向左數(shù)第八個(gè)像素(即像素P(n-8))之間是否存在邊界。具體而言,根據(jù)L (n-8)-L (n)是否大于或等于規(guī)定值來(lái)作出判斷。然后,在L (n_8)-L (n)大于或等于規(guī)定值的情況下,判斷為這些像素之間的某處存在邊界。在此,本實(shí)施方式中假設(shè)用O 255的值來(lái)表示各個(gè)像素的亮度值,并將上述規(guī)定值作為60。但這些數(shù)字只不過(guò)是一例,并不局限于此。
在判斷為像素P(n)與像素P(n-8)之間的某處存在邊界的情況下,接下來(lái)根據(jù)這兩個(gè)像素或者這兩個(gè)像素附近(周邊)的像素的亮度值,來(lái)計(jì)算用于檢測(cè)邊界的位置的邊界判斷閾值。下面,參照?qǐng)D9 圖12,來(lái)說(shuō)明邊界判斷閾值的計(jì)算方法。首先,如圖9 圖12所示,根據(jù)像素P(n-8)或者其附近的像素的亮度值,來(lái)確定白色區(qū)域亮度值Lw。以下,對(duì)確定白色區(qū)域亮度值Lw的方法的一例進(jìn)行說(shuō)明。首先,判斷像素P(n-9)的亮度值是否小于像素P(n-8)的亮度值,在判斷為是的情況下,像素P(n-8)的亮度值成為白色區(qū)域亮度值Lw。例如,圖9、圖11及圖12的例中,像素P (n-9)的亮度值為210,像素P (n-8)的亮度值為220,因而作為像素P (n_8)的亮度值的220便成為白色區(qū)域亮度值Lw。在像素P(n_9)的亮度值大于或等于像素P(n-8)的亮度值的情況下,接下來(lái)判斷像素P(n-10)的亮度值是否小于像素P(n-9)的亮度值,在判斷為是的情況下,像素P(n-9)的亮度值便成為白色區(qū)域亮度值Lw。在像素P (n-9)的亮度值大于或等于像素P (n-8)的亮度值,而且像素P (n_10)的亮度值大于或等于像素P(n-9)的亮度值的情況下,接下來(lái)判斷像素P(n-ll)的亮度值是否小于像素P (n-10)的亮度值,在判斷為是的情況下,像素P (n-10)的亮度值便成為白色區(qū)域亮度值Lw。例如,圖10的例中,像素P(n-ll)的亮度值為210,像素P(n-10)的亮度值為220,因而作為像素P (n-10)的亮度值的220成為白色區(qū)域亮度值Lw。換言之,如上所述的處理是從像素P(n-8)向左方向依次參照像素的亮度值來(lái)查找亮度值的極大值(第一次出現(xiàn)的極大值)的處理。進(jìn)一步,也可以說(shuō)是在像素P(n-8)和其周邊的像素的亮度值之中檢測(cè)極大值的處理。通過(guò)進(jìn)行上述處理,即使在如圖10所示那樣像素P(n-8)位于標(biāo)記50的白色區(qū)域與黑色區(qū)域的界限處(實(shí)拍圖像中用灰色顯示)的情況下,也可以正確地將標(biāo)記50的白色區(qū)域的亮度值設(shè)定為白色區(qū)域亮度值Lw。在此,雖然在本實(shí)施方式中如上所述那樣確定了白色區(qū)域亮度值Lw,但是這只不過(guò)是一例,確定白色區(qū)域亮度值Lw的方法不局限于此。例如,也可以將像素P(n-8)的亮度值與其周邊的像素中的任一個(gè)像素的亮度值進(jìn)行比較,而在該周邊像素的亮度值更大的情況下,基于該周邊像素的亮度值來(lái)計(jì)算白色區(qū)域亮度值Lw。再例如,從像素P(n-8)向左方向依次參照像素的亮度值而查找亮度值的極大值(第一次出現(xiàn)的極大值)的處理的中途,若參照像素的亮度值超過(guò)了規(guī)定值(例如250),則中斷查找亮度值的極大值的處理,而基于該參照像素的亮度值來(lái)計(jì)算白色區(qū)域亮度值Lw。下面,如圖9 如圖12所示,基于像素P(n)或者其附近的像素的亮度值,來(lái)確定黑色區(qū)域亮度值Lb。以下,說(shuō)明確定黑色區(qū)域亮度值Lb的方法的一例。首先,判斷像素P(n+2)的亮度值是否小于或等于像素P(n)的亮度值,在小于或等于像素P(n)的亮度值的情況下,像素P (n)的亮度值便成為黑色區(qū)域亮度值Lb。例如,在圖9及圖10的例中,像素P (n+2)的亮度值為100,像素P (n)的亮度值為100,因而作為像素P(n)的亮度值的100便成為黑色區(qū)域亮度值Lb。
在像素P(n+2)的亮度值大于像素P(n)的亮度值的情況下,接下來(lái)判斷從白色區(qū)域亮度值Lw減去像素P(n+2)的亮度值的結(jié)果的值(即,Lw-L(n+2))是否大于或等于上述規(guī)定值(即,60)。然后,在該結(jié)果的值大于或等于60的情況下,像素P(n+2)的亮度值便成為黑色區(qū)域亮度值Lb,在該結(jié)果的值小于60的情況下,像素P(n)的亮度值便成為黑色區(qū)域亮度值Lb。例如,在圖11的例中,像素P(n)的亮度值為20,像素P(n+2)的亮度值為100,白色區(qū)域亮度值Lw為220。并且,Lw-L(n+2) = 120,因而作為像素P (n+2)的亮度值的100便成為黑色區(qū)域亮度值Lb。然而,在施加了邊界強(qiáng)調(diào)處理(輪廓強(qiáng)調(diào)處理,銳化處理)的實(shí)拍圖像中,如圖11所示那樣,鄰接白色區(qū)域的黑色區(qū)域像素的亮度值會(huì)成為比原來(lái)的黑色區(qū)域的亮度值明顯小的值。于是,在本實(shí)施方式中,為了在這樣的情況下也能夠恰當(dāng)?shù)卮_定黑色區(qū)域亮度值Lb,而在滿足上述條件時(shí),將像素P (n+2)的亮度值定為黑色區(qū)域亮度值Lb。另一方面,在圖12的例中,像素P (n)的亮度值為100,像素P (n+2)的亮度值為210,白色區(qū)域亮度值Lw為220。并且,由于Lw-L (n+2) = 10,因此作為像素P (n)的亮度值的100便成為黑色區(qū)域亮度值Lb。此外,雖然在本實(shí)施方式中,如上所述那樣確定了黑色區(qū)域亮度值Lb,但這只不過(guò)是一例,確定黑色區(qū)域亮度值Lb的方法不局限于此。如上所述那樣確定了白色區(qū)域亮度值Lw及黑色區(qū)域亮度值Lb之后,接下來(lái)根據(jù)這些白色區(qū)域亮度值Lw及黑色區(qū)域亮度值Lb來(lái)計(jì)算邊界判斷閾值。在本實(shí)施方式中,將白色區(qū)域亮度值Lw和黑色區(qū)域亮度值Lb的平均值確定為邊界判斷閾值。例如,在圖9 圖12的例中,邊界判斷閾值均為160。但是,這只不過(guò)是一例,計(jì)算邊界判斷閾值的方法不局限于此。如上所述那樣確定了邊界判斷閾值之后,利用該邊界判斷閾值來(lái)檢測(cè)在像素P (n)與像素P(n_8)之間的哪里存在邊界。具體而言,具有大于邊界判斷閾值的亮度值的像素被判斷為屬于白色區(qū)域,具有小于邊界判斷閾值的亮度值的像素被判斷為屬于黑色區(qū)域。然后,白色區(qū)域與黑色區(qū)域的界限被判斷為邊界。另外,在本實(shí)施方式中,檢測(cè)出與白色區(qū)域相鄰的黑色區(qū)域像素,并將其當(dāng)作位于邊界上的(或者鄰接邊界的)“邊界像素”。例如,在圖9的例中,像素P(n-5)被判斷為邊界像素,在圖10的例中,像素P(n-7)被判斷為邊界像素,在圖11的例中,像素P(n)被判斷為邊界像素,在圖12的例中,像素P(n-6)被判斷為邊界像素。此外,在其它實(shí)施方式中,也可以檢測(cè)出與黑色區(qū)域相鄰的白色區(qū)域像素,并將其當(dāng)作位于邊界上的“邊界像素”。實(shí)拍圖像的各個(gè)像素與表示該像素是否是邊界像素的標(biāo)志(邊界標(biāo)志)之間建立了對(duì)應(yīng),對(duì)于被判斷為邊界像素的像素,使邊界標(biāo)志為0N。以下的說(shuō)明中,將如上所述那樣檢測(cè)出的邊界像素稱為“起點(diǎn)邊界像素”。可以推測(cè),起點(diǎn)邊界像素是畫在標(biāo)記50上的圖案的輪廓(如圖5所示的白色區(qū)域與黑色區(qū)域的界線)的一部分。在起點(diǎn)邊界像素是畫在標(biāo)記50上的圖案的輪廓的一部分的情況下,以該起點(diǎn)邊界像素為起點(diǎn)來(lái)依次追蹤相鄰的邊界像素,便能檢測(cè)出畫在標(biāo)記50上的圖案(如圖5所示的白色區(qū)域與黑色區(qū)域的界線)的輪廓。以下說(shuō)明將起點(diǎn)邊界像素作為起點(diǎn)來(lái)依次追蹤相鄰的邊界像素的處理(邊界追蹤處理)。、
首先,如圖13所示,以起點(diǎn)邊界像素作為中心,按左下方相鄰像素一下方相鄰像素一右下方相鄰像素一右方相鄰像素一右上方相鄰像素一上方相鄰像素一左上方相鄰像素的順序(即,以起點(diǎn)邊界像素為中心而從左方相鄰像素出發(fā)沿逆時(shí)針?lè)较?搜索黑色區(qū)域像素,并將第一次檢測(cè)出的黑色區(qū)域像素當(dāng)作繼起點(diǎn)邊界像素之后的新的邊界像素。關(guān)于各個(gè)相鄰像素是否是黑色區(qū)域像素,根據(jù)檢測(cè)起點(diǎn)邊界像素時(shí)所利用的邊界判斷閾值來(lái)進(jìn)行判斷,具體而言,在相鄰像素的亮度值小于邊界判斷閾值的情況下,該相鄰像素被判斷為黑色區(qū)域像素。 例如,在圖14的例中,作為新的邊界像素,檢測(cè)出左下方相鄰像素,在圖15的例中,作為新的邊界像素,檢測(cè)出右方相鄰像素。在邊界追蹤處理中,以起點(diǎn)邊界像素為起點(diǎn)而依次檢測(cè)出的邊界像素,作為一系列的邊界像素,其坐標(biāo)值依次被存儲(chǔ)于主存儲(chǔ)器32。以下的說(shuō)明中,將在邊界追蹤處理中最后檢測(cè)出的一個(gè)邊界像素稱為“前導(dǎo)邊界像素”,而將檢測(cè)出前導(dǎo)邊界像素之前檢測(cè)出來(lái)的倒數(shù)第二個(gè)邊界像素稱為“第二個(gè)邊界像素”。繼前導(dǎo)邊界像素之后的新的邊界像素是通過(guò)以前導(dǎo)邊界像素為中心,并以其相鄰像素為起點(diǎn),沿著逆時(shí)針?lè)较蛩阉骱谏珔^(qū)域像素而被檢測(cè)出的像素,該相鄰像素位于從該前導(dǎo)邊界像素來(lái)看是第二個(gè)邊界像素的方向開(kāi)始,沿逆時(shí)針?lè)较蚧剞D(zhuǎn)了 135度的方向(在其它實(shí)施方式中,也可以將位于按逆時(shí)針?lè)较蚧剞D(zhuǎn)了 45度的方向的相鄰像素作為起點(diǎn),或者也可以將位于按逆時(shí)針?lè)较蚧剞D(zhuǎn)了 90度的方向的相鄰像素作為起點(diǎn))。然后,該搜索中第一次檢測(cè)出的黑色區(qū)域像素被當(dāng)作新的邊界像素(即,新的前導(dǎo)邊界像素)。例如,如圖16所示,在第二個(gè)邊界像素是前導(dǎo)邊界像素的右上方相鄰像素的情況下,以前導(dǎo)邊界像素為中心,從左方相鄰像素開(kāi)始沿著逆時(shí)針?lè)较蛩阉骱谏珔^(qū)域像素。因此,在圖17的例中,前導(dǎo)邊界像素的下方相鄰像素作為新的邊界像素被檢測(cè)出。再例如,如圖18所示,在第二個(gè)邊界像素是前導(dǎo)邊界像素的左方相鄰像素的情況下,以前導(dǎo)邊界像素為中心,從右下方相鄰像素開(kāi)始沿著逆時(shí)針?lè)较蛩阉骱谏珔^(qū)域像素。因此,在圖19的例中,前導(dǎo)邊界像素的右方相鄰像素作為新的邊界像素被檢測(cè)出。通過(guò)反復(fù)進(jìn)行上述處理,便可依次檢測(cè)出新的邊界像素,當(dāng)最終前導(dǎo)邊界像素到達(dá)起點(diǎn)邊界像素時(shí),黑色區(qū)域的輪廓的檢測(cè)便結(jié)束(即,有關(guān)表示黑色區(qū)域的輪廓的一系列的邊界像素群的數(shù)據(jù)被存儲(chǔ)于主存儲(chǔ)器32)。另外,在本實(shí)施方式中,每當(dāng)在邊界追蹤處理中檢測(cè)出新的邊界像素,都要基于上述邊界標(biāo)志來(lái)判斷該新的邊界像素是否包括在已經(jīng)檢測(cè)出來(lái)的一系列的邊界像素群中。然后,若連續(xù)三次判斷為新的邊界像素包括在已經(jīng)檢測(cè)的一系列的邊界像素群中,則中斷邊界追蹤處理。例如,如圖20所示,若只是連續(xù)兩次判斷為新的邊界像素包括在已經(jīng)檢測(cè)出來(lái)的一系列的邊界像素群中,則不會(huì)中斷邊界追蹤處理。然而,如圖21所示,若連續(xù)三次判斷為新的邊界像素包括在已經(jīng)檢測(cè)出來(lái)的一系列的邊界像素群中,則中斷邊界追蹤處理。這是因?yàn)槿鐖D21所示的黑色區(qū)域很有可能不是畫在標(biāo)記50上的圖案的輪廓(即是標(biāo)記50以外的物體的輪廓)。另外,就算是該黑色區(qū)域是畫在標(biāo)記50上的圖案的輪廓,也很有可能無(wú)法正常進(jìn)行后述的模式匹配處理等。由此,可以避免無(wú)用的處理。另外,次數(shù)為三次只不過(guò)是一例,也可以是其它次數(shù)。
另外,雖然在上述說(shuō)明中對(duì)以起點(diǎn)邊界像素為起點(diǎn),沿著逆時(shí)針?lè)较蜃粉櫤谏珔^(qū)域的輪廓的例子進(jìn)行了說(shuō)明,但是在其它實(shí)施方式中,也可以以起點(diǎn)邊界像素為起點(diǎn),沿著順時(shí)針?lè)较蜃粉櫤谏珔^(qū)域的輪廓。如上所述,在輪廓檢測(cè)處理中,確定了白色區(qū)域亮度值Lw和黑色區(qū)域亮度值Lb,并根據(jù)這些白色區(qū)域亮度值Lw及黑色區(qū)域亮度值Lb,來(lái)計(jì)算邊界判斷閾值。因此,即使因?qū)嵟膱D像的整體或者一部分的亮度發(fā)生變化,而導(dǎo)致實(shí)拍圖像中的標(biāo)記50的白色區(qū)域及黑色區(qū)域的亮度也相應(yīng)地變化,也可以使用合適的邊界判斷閾值來(lái)進(jìn)行輪廓提取處理。因此,標(biāo)記50的識(shí)別精度得到提聞。另外,雖然在上述輪廓檢測(cè)處理中,根據(jù)像素的亮度值來(lái)提取輪廓,但是不局限于亮度值,也可以根據(jù)其它任何像素值(具體而言是色值)來(lái)檢測(cè)輪廓。另外,雖然在上述輪廓檢測(cè)處理中,首先判斷在水平方向上分離的兩個(gè)像素(像 素P(n)與像素P(n-8))之間是否存在邊界,但是選擇兩個(gè)像素的方法不局限于此。例如,可以判斷在垂直方向上分離的兩個(gè)像素之間是否存在邊界,也可以判斷在斜方向分離的兩個(gè)像素之間是否存在邊界。另外,雖然在上述輪廓檢測(cè)處理中,在L(n-8)_L(n)大于或等于規(guī)定值的情況下,判斷為像素P(n)與像素P(n-8)之間存在邊界(在此情況下,可以找到左側(cè)為白色區(qū)域、右側(cè)為黑色區(qū)域這樣的邊界),但是在其它實(shí)施方式中,也可以是,在L(n-8)-L(n)的絕對(duì)值大于或等于規(guī)定值的情況下,判斷為像素P (n)與像素P(n-8)之間存在邊界。在此情況下,除了左側(cè)為白色區(qū)域、右側(cè)為黑色區(qū)域這樣的邊界以外,還可以找到左側(cè)為黑色區(qū)域、右側(cè)為白色區(qū)域這樣的邊界。另外,雖然在上述輪廓檢測(cè)處理中,使用在檢測(cè)起點(diǎn)邊界像素時(shí)所利用的邊界判斷閾值來(lái)進(jìn)行上述邊界追蹤處理,但是在其它實(shí)施方式中,也可以將該邊界判斷閾值用于從實(shí)拍圖像中的任何區(qū)域(例如,實(shí)拍圖像的整體)檢測(cè)邊界像素。例如,也可以根據(jù)上述邊界判斷閾值,來(lái)檢測(cè)在包含有起點(diǎn)邊界像素的行的下一行的邊界像素、或其它輪廓(包含有起點(diǎn)邊界像素的輪廓之外的)的邊界像素等。〈頂點(diǎn)檢測(cè)處理〉下面說(shuō)明頂點(diǎn)檢測(cè)處理。頂點(diǎn)檢測(cè)處理是檢測(cè)實(shí)拍圖像中的標(biāo)記50的黑色區(qū)域的4個(gè)頂點(diǎn)的處理,包括以下處理。 直線計(jì)算處理 直線統(tǒng)合處理 直線選擇處理 頂點(diǎn)計(jì)算處理在直線計(jì)算處理中,根據(jù)在上述輪廓檢測(cè)處理中存儲(chǔ)于主存儲(chǔ)器32的、有關(guān)表示黑色區(qū)域的輪廓的一系列的邊界像素群的數(shù)據(jù),來(lái)計(jì)算多條直線。下面,參照?qǐng)D22 圖36來(lái)對(duì)直線計(jì)算處理進(jìn)行詳細(xì)的說(shuō)明。在存儲(chǔ)于主存儲(chǔ)器32中的有關(guān)一系列的邊界像素群的數(shù)據(jù)中,對(duì)多個(gè)邊界像素分配了順序。下面,為了說(shuō)明上的方便,將沿著逆時(shí)針?lè)较蜃粉櫤谏珔^(qū)域的輪廓的方向(即,若站在黑色區(qū)域面向白色區(qū)域的方向,則是左手方向)稱為前方,將沿著順時(shí)針?lè)较蜃粉櫤谏珔^(qū)域的輪廓的方向(即,若站在黑色區(qū)域面向白色區(qū)域的方向,則是右手方向)稱為后方。首先,如圖22所示,根據(jù)從起點(diǎn)邊界像素Pe(O)至該起點(diǎn)邊界像素Pe (0)的四個(gè)之前的邊界像素Pe (4)為止的五個(gè)邊界像素Pe(O) Pe (4),來(lái)生成最初的直線Li (0_4),而且將表示該直線Li (0-4)的數(shù)據(jù)存儲(chǔ)于主存儲(chǔ)器32。另外,作為根據(jù)多個(gè)邊界像素來(lái)生成直線的方法,可以采用各種方法,在本實(shí)施方式中采用最小二乘法來(lái)生成直線。下面,如圖23所示,根據(jù)與直線Li (0-4)對(duì)應(yīng)的邊界像素Pe(O) Pe(4)的前方的五個(gè)邊界像素Pe (5) Pe (9),例如采用最小二乘法來(lái)生成假定直線,并判斷直線Li (0-4)和假定直線是否在同一直線上。該判斷例如可根據(jù)假定直線相對(duì)直線Li (0-4)的角度來(lái)作出。在本實(shí)施方式中,如圖24所示,若假定直線相對(duì)直線Li (0-4)的角度(將逆時(shí)針?lè)较蜃鳛檎较?在-30° +30°的范圍內(nèi),則判斷為 直線Li (0-4)和假定直線在同一直線上。在此,從-30°及+30°這些值只不過(guò)是一例,不局限于此。判斷為直線Li (0-4)和假定直線在同一直線上之后,根據(jù)對(duì)應(yīng)于直線Li (0-4)的邊界像素Pe(O) Pe (4)、和對(duì)應(yīng)于假定直線的邊界像素Pe (5) Pe (9)這十個(gè)邊界像素,例如采用最小二乘法,計(jì)算如圖25所示的直線Li (0-9),并將存儲(chǔ)于主存儲(chǔ)器32的、表示直線Li (0-4)的數(shù)據(jù)更新為表示直線Li (0-9)的數(shù)據(jù)。通過(guò)反復(fù)進(jìn)行上述處理,來(lái)依次更新(延長(zhǎng))直線。另外,雖然在本實(shí)施方式中用五個(gè)邊界像素來(lái)生成一條假定直線,但是這只不過(guò)是一例,不局限于此。在圖26的例中,相對(duì)直線Li (0-14),假定直線(即,根據(jù)在直線Li (0_14)前方附近的五個(gè)邊界像素Pe (15) Pe (19)而生成的假定直線)的角度超過(guò)+30°,因而判斷為在直線Li (0-14)與假定直線的交點(diǎn)附近黑色區(qū)域呈凸角(即,在直線Li (0-14)與假定直線的交點(diǎn)附近黑色區(qū)域向外凸出)(參照?qǐng)D24)。在此情況下,判斷為假定直線是與直線Li (0-14)不相同的新的直線,從而生成對(duì)應(yīng)于該假定直線的新的直線Li (15-19)(參照?qǐng)D27)。在此情況下,將表示直線Li (0-14)的數(shù)據(jù)依然保留于主存儲(chǔ)器32中,并將表示直線Li (15-19)的新的數(shù)據(jù)存儲(chǔ)于主存儲(chǔ)器32。接下來(lái),如圖28所示,判斷直線Li (15-19)與根據(jù)與該直線Li (15_19)對(duì)應(yīng)的邊界像素Pe (15) Pe (19)的前方的五個(gè)邊界像素Pe (20) Pe (24)而生成的假定直線是否在同一直線上。然后,若判斷為在同一直線上,則如圖29所示,根據(jù)邊界像素Pe(15) Pe (24),將直線 Li (15-19)更新為直線 Li (15-24)。通過(guò)反復(fù)進(jìn)行上述處理,最后算出如圖30所示的多條直線(在圖30的例中,直線A 直線F的共六條線段)。另外,其中也可以包括如直線D那樣的較短的線段。如上所述,在直線計(jì)算處理中,根據(jù)一系列的邊界像素中的在同一直線上的一部分邊界像素,可算出各條直線。另外,雖然在上述直線計(jì)算處理中,以起點(diǎn)邊界像素Pe(O)為起點(diǎn)來(lái)生成并更新直線,但是不局限于此,也可以以起點(diǎn)邊界像素Pe(O)以外的任何邊界像素為起點(diǎn)來(lái)生成并更新直線。另外,雖然在上述直線計(jì)算處理中,是在逆時(shí)針?lè)较蛏仙刹⒏轮本€,但是不局限于此,也可以在順時(shí)針?lè)较蛏仙刹⒏轮本€。另外,雖然在上述直線計(jì)算處理中,判斷已經(jīng)生成的直線與鄰接該直線的假定直線是否在同一直線上,并在判斷為在同一直線上的情況下,根據(jù)對(duì)應(yīng)于這些直線及假定直線的多個(gè)邊界像素來(lái)計(jì)算直線,但是在其它實(shí)施方式中,也可以是,先生成多個(gè)假定直線之后,根據(jù)對(duì)應(yīng)于該多個(gè)假定直線中的在同一直線上的多個(gè)假定直線的多個(gè)邊界像素,來(lái)計(jì)
算直線。另外,如圖31所示,在實(shí)拍圖像中以部分重疊在標(biāo)記50的黑色區(qū)域的一邊的方式顯示黑色物體的情況下,在直線計(jì)算處理中,生成了直線A及直線B之后,如圖32所示,判斷直線B與假定直線是否在同一直線上,其中,該假定直線是根據(jù)與上述直線B對(duì)應(yīng)的邊界像素群的前方的邊界像素群而算出的。由于假定直線相對(duì)直線B的角度小于-30°,因而判斷為在直線B與假定直線的交點(diǎn)附近黑色區(qū)域呈凹角(即,在直線B與假定直線的交點(diǎn)附 近黑色區(qū)域向內(nèi)側(cè)凹陷)(參照?qǐng)D24)。但是,由于標(biāo)記50的黑色區(qū)域的輪廓中不存在凹角(即,只存在凸角),因此在上述凹角被檢測(cè)出的情況下,可以推測(cè)為假定直線表示的是標(biāo)記以外的其它物體的輪廓的一部分。如上所述,在直線計(jì)算處理中檢測(cè)出凹角的情況下,判斷為不能執(zhí)行更新直線(延長(zhǎng)線段)或重新生成直線的處理。然后,中斷對(duì)黑色區(qū)域沿著逆時(shí)針?lè)较蚋轮本€(延長(zhǎng)線段)及重新生成直線的處理,接著,開(kāi)始進(jìn)行沿著與之前的方向相反的方向(即順時(shí)針?lè)较?更新(延長(zhǎng))及重新生成直線的處理。例如,在圖31的例中,執(zhí)行從起點(diǎn)邊界像素沿著順時(shí)針?lè)较蚴怪本€A(線段)向后方延長(zhǎng)的處理、及重新生成直線的處理。其結(jié)果,如圖33所示那樣,圖31的直線A被更新為直線A’,并且依次生成了直線C 直線E。另外,由于在直線E(線段)的后端檢測(cè)出凹角,因此到此為止該直線計(jì)算處理結(jié)束。其結(jié)果,算出了直線A’、直線B 直線E的共五條直線。另外,作為其它例子,如圖34所示,在實(shí)拍圖像中以部分重疊在標(biāo)記50的黑色區(qū)域的一邊的方式顯示白色物體的情況下,在直線計(jì)算處理中,生成了直線A 直線C之后,檢測(cè)出凹角。然后,開(kāi)始進(jìn)行從起點(diǎn)邊界像素起沿著順時(shí)針?lè)较驅(qū)⒅本€A向后方延伸的處理、及生成新的直線的處理,由此,將直線A更新為直線A’,進(jìn)一步,依次生成直線D 直線G。其結(jié)果,算出了直線A’及直線B 直線G的共7條直線。作為另一個(gè)例子,如圖35所示,在實(shí)拍圖像中以重疊在標(biāo)記50的黑色區(qū)域的一個(gè)頂點(diǎn)的方式顯示黑色物體的情況下,算出了直線A’及直線B 直線D的共四條直線。作為另一個(gè)例子,如圖36所示,在實(shí)拍圖像中以重疊在標(biāo)記50的黑色區(qū)域的一個(gè)頂點(diǎn)的方式顯示白色物體的情況下,算出了直線A’及直線B 直線F的共六條直線。在直線計(jì)算處理完畢之后,接下來(lái)執(zhí)行直線統(tǒng)合處理。直線統(tǒng)合處理是指,將在直線計(jì)算處理中算出的多條直線(線段)中的在同一直線上的同一方向的多條線段統(tǒng)合成一條線段的處理。例如,在圖30的例子中,直線A和直線F在同一直線上,而且朝向同一方向,因而如圖37所示,這兩條直線被統(tǒng)合成一條直線A+F。此外,例如在圖33的例子中,直線B和直線E在同一直線上,而且朝向同一方向,因而如圖38所示,這兩條直線被統(tǒng)合成一條直線B+E。此外,在例如圖34的例子中,直線B和直線F在同一直線上,而且朝向同一方向,因而如圖39所示,這兩條直線被統(tǒng)合成一條直線B+F。直線統(tǒng)合處理完畢之后,接下來(lái)執(zhí)行直線選擇處理。直線選擇處理是指,從經(jīng)過(guò)直線計(jì)算處理及直線統(tǒng)合處理而最終留下來(lái)的多條直線中,選擇與標(biāo)記50的黑色區(qū)域的4個(gè)邊對(duì)應(yīng)的直線的處理。在本實(shí)施方式中,在最終留下來(lái)的多條直線(線段)中選擇長(zhǎng)度較長(zhǎng)的四條直線(即,最長(zhǎng)的直線、第二長(zhǎng)的直線、第三長(zhǎng)的直線及第四長(zhǎng)的直線),來(lái)作為與標(biāo)記50的黑色區(qū)域的4個(gè)邊分別對(duì)應(yīng)的直線。在以下說(shuō)明中,將所選擇出的四條直線按以其中任意一條直線為起點(diǎn)的逆時(shí)針?lè)较蝽樞蚍謩e稱為第一直線、第二直線、第三直線及第四直線。例如在圖37的例子中,在直線選擇處理中,從直線A+F、直線B 直線E的五條直線中選擇直線A+F、直線B、直線C 及直線E (參照?qǐng)D40)。此外,例如在圖39的例子中,在直線選擇處理中,從直線A’、直線B+F、直線C 直線E、及直線G的六條直線中選擇直線A’、直線B+F、直線E及直線D。此外,例如在圖36的例子中,在直線選擇處理中,從直線A’、直線B 直線F的六條直線中選擇直線A’、直線B、直線E及直線D (參照?qǐng)D41)。另外,由于在圖35及圖38的例子中只有四條直線,因此在直線選擇處理中選擇該四條直線。另外,在上述直線選擇處理中選擇了四條直線,這是因?yàn)闃?biāo)記50的黑色區(qū)域?yàn)樗慕切?。然而,若?biāo)記50的黑色區(qū)域例如為六角形,則在直線選擇處理中則應(yīng)選擇六條直線。在直線選擇處理結(jié)束之后,接下來(lái)執(zhí)行頂點(diǎn)計(jì)算處理。在頂點(diǎn)計(jì)算處理中,根據(jù)在直線選擇處理中被選擇的四條直線(第一直線 第四直線),來(lái)計(jì)算標(biāo)記50的黑色區(qū)域的4個(gè)頂點(diǎn)的位置。具體而言,第一直線和第二直線的交點(diǎn)的位置作為標(biāo)記50的黑色區(qū)域的第一頂點(diǎn)的位置而被算出;第二直線和第三直線的交點(diǎn)的位置作為標(biāo)記50的黑色區(qū)域的第二頂點(diǎn)的位置而被算出;第三直線和第四直線的交點(diǎn)的位置作為標(biāo)記50的黑色區(qū)域的第三頂點(diǎn)的位置而被算出;第四直線和第一直線的交點(diǎn)的位置作為標(biāo)記50的黑色區(qū)域的第四頂點(diǎn)的位置而被算出。例如在圖40的例子中,如圖42所示那樣計(jì)算第一頂點(diǎn) 第四頂點(diǎn)的位置。再例如,在圖41的例子,如圖43所示那樣計(jì)算第一頂點(diǎn) 第四頂點(diǎn)的位置。如上所述那樣,經(jīng)過(guò)直線計(jì)算處理、直線統(tǒng)合處理、直線選擇處理及頂點(diǎn)計(jì)算處理,實(shí)拍圖像中的標(biāo)記50的黑色區(qū)域的4個(gè)頂點(diǎn)可被檢測(cè)出來(lái)。如此檢測(cè)出的頂點(diǎn)的位置是基于在同一直線上的多個(gè)邊界像素而生成的直線的交點(diǎn),因此具有很高的精度。例如,在將一系列的邊界像素中的任一個(gè)邊界像素確定為頂點(diǎn)的情況下,頂點(diǎn)的位置會(huì)因環(huán)境光等的影響而產(chǎn)生抖動(dòng),但是由于如上所述那樣檢測(cè)出的頂點(diǎn)的位置是根據(jù)多個(gè)邊界像素算出的,因此不會(huì)產(chǎn)生抖動(dòng)?!创致耘袆e處理〉下面,對(duì)粗略判別處理進(jìn)行說(shuō)明。粗略判別處理是指,在進(jìn)行后述的圖案判別處理之前,根據(jù)通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的4個(gè)頂點(diǎn)之間的位置關(guān)系來(lái)判斷該4個(gè)頂點(diǎn)是否是標(biāo)記50的4個(gè)頂點(diǎn)的處理。在本實(shí)施方式中,在滿足如下所示的除外條件A D中任一個(gè)條件的情況下,判斷為通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的4個(gè)頂點(diǎn)不是標(biāo)記50的4個(gè)頂點(diǎn)。除外條件A :任意的相鄰的2個(gè)頂點(diǎn)之間的距離太近的情況。具體是指,第一頂點(diǎn)與第二頂點(diǎn)之間的距離小于規(guī)定的閾值(第一最小容許距離)的情況;或者第二頂點(diǎn)與第三頂點(diǎn)之間的距離小于第一最小容許距離的情況;或者第三頂點(diǎn)與第四頂點(diǎn)之間的距離小于第一最小容許距離的情況;或者第四頂點(diǎn)與第一頂點(diǎn)之間的距離小于第一最小容許距離的情況。例如,在圖44的例子中,由于第一頂點(diǎn)與第二頂點(diǎn)之間的距離太近,因此判斷為第一頂點(diǎn) 第四頂點(diǎn)不是標(biāo)記50的4個(gè)頂點(diǎn)。除外條件B :任一個(gè)頂點(diǎn)和與該頂點(diǎn)不相鄰的2個(gè)邊中的任一個(gè)邊之間的距離太近的情況。具體是指,第一頂點(diǎn)與第三直線之間的距離小于規(guī)定的閾值(第二最小容許距離)的情況;或者第一頂點(diǎn)與第四直線之間的距離小于第二最小容許距離的情況;或者第二頂點(diǎn)與第四直線之間的距離小于第二最小容許距離的情況;或者第二頂點(diǎn)與第一直線之間的距離小于第二最小容許距離的情況;或者第三頂點(diǎn)與第一直線之間距離小于第二最小容許距離的情況;或者第三頂點(diǎn)與第二直線之間的距離小于第二最小容許距離的情況;或者第四頂點(diǎn)與第二直線之間的距離小于第二最小容許距離的情況;或者第四頂點(diǎn)與第三直線之間的距離小于第二最小容許距離的情況。例如,在圖45的例子,由于第一頂點(diǎn)與第三 直線之間的距離太近,因此判斷為第一頂點(diǎn) 第四頂點(diǎn)不是標(biāo)記50的4個(gè)頂點(diǎn)。除外條件C :任意的相向的2個(gè)邊的直線(向量)大致為同一方向的情況。具體是指,在第一直線(連接第四頂點(diǎn)和第一頂點(diǎn)的向量)和第三直線(連接第二頂點(diǎn)和第三頂點(diǎn)的向量)大致為同一方向的情況;或者第二直線(連接第一頂點(diǎn)和第二頂點(diǎn)的向量)和第四直線(連接第四頂點(diǎn)和第一頂點(diǎn)的向量)大致為同一方向的情況。例如,在圖44的例子中,由于第一直線(連接第四頂點(diǎn)和第一頂點(diǎn)的向量)和第三直線(連接第二頂點(diǎn)和第三頂點(diǎn)的向量)大致為同一方向,因此判斷為第一頂點(diǎn) 第四頂點(diǎn)不是標(biāo)記50的4個(gè)頂點(diǎn)。在此,對(duì)于兩個(gè)向量是否大致為同一方向,例如可以根據(jù)如圖24所示的兩個(gè)向量所形成的角度來(lái)作出判斷。除外條件D :包括凹角的情況。具體是指,第一頂點(diǎn) 第四頂點(diǎn)之中的任一個(gè)頂點(diǎn)是凹角的情況。例如,在圖47的例子中,由于第二頂點(diǎn)為凹角,因此判斷為第一頂點(diǎn) 第四頂點(diǎn)不是標(biāo)記50的4個(gè)頂點(diǎn)。另外,雖然在本實(shí)施方式中根據(jù)上述除外條件A 除外條件D來(lái)進(jìn)行粗略判別處理,但是這只不過(guò)是一例,可以利用這些除外條件中的一個(gè)條件、或者多個(gè)條件,也可以使用與這些除外條件不相同的其它除外條件。在滿足上述除外條件A 除外條件D中的任一個(gè)條件的情況下,通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的4個(gè)頂點(diǎn)被判斷為不是標(biāo)記50的4個(gè)頂點(diǎn),而且將其從后述的圖案判別處理的處理對(duì)象中排除。由此,圖案判別處理所需的處理負(fù)擔(dān)得到減輕。<圖案判別處理>下面,對(duì)圖案判別處理進(jìn)行說(shuō)明。圖案判別處理是指,用于判別顯示在以通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的4個(gè)頂點(diǎn)為各角頂點(diǎn)而形成的區(qū)域中的圖案是否與畫在標(biāo)記50上的圖案相同的處理。在圖案判別處理中,使用根據(jù)畫在標(biāo)記50上的圖案而預(yù)先生成的模式定義數(shù)據(jù),來(lái)判別顯示在以通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的4個(gè)頂點(diǎn)為角頂點(diǎn)而形成的區(qū)域中的圖案是否與畫在標(biāo)記50上的圖案相同。模式定義數(shù)據(jù)是表示畫在標(biāo)記50上的圖案的數(shù)據(jù),本實(shí)施方式中,如圖48所示那樣,將標(biāo)記50的各邊等分成16份而生成格子,并將格子之間形成的交叉點(diǎn)當(dāng)作采樣點(diǎn)(S (1,I) S (15,15)),然后將對(duì)標(biāo)記50上的各個(gè)采樣點(diǎn)的像素值進(jìn)行了定義(參照?qǐng)D49)的數(shù)據(jù)作為模式定義數(shù)據(jù)。另外,雖然在本實(shí)施方式中將標(biāo)記50的各邊分割成16份,但這只不過(guò)是一例,不局限于分割成16份。另外,雖然在本實(shí)施方式中,將標(biāo)記50的各邊等分而生成格子,并將該格子的交叉點(diǎn)當(dāng)作采樣點(diǎn),但是在其它實(shí)施方式中,也可以將由格子形成的四角形的中心當(dāng)作采樣點(diǎn)。本實(shí)施方式中,將離標(biāo)記50的左上頂點(diǎn)最近的交叉點(diǎn)當(dāng)作采樣點(diǎn)S(l,I),將離標(biāo)記50的左下頂點(diǎn)最近的交叉點(diǎn)當(dāng)作采樣點(diǎn)S (1,15),將離標(biāo)記50的右上頂點(diǎn)最近的交叉點(diǎn)當(dāng)作采樣點(diǎn)S (15,I),將離標(biāo)記50的右下頂點(diǎn)最近的交叉點(diǎn)當(dāng)作采樣點(diǎn)S (15,15)。另外,雖然在圖49的例子中,像素值在表示像素值的欄中被定義為“黑”或“白”,但是在其它實(shí)施方式中,像素值也可以被定義為色值(RGB值)或亮度值。圖50表示包含有標(biāo)記50的實(shí)拍圖像。通過(guò)對(duì)該實(shí)拍圖像進(jìn)行如上所述的輪廓檢測(cè)處理及頂點(diǎn)檢測(cè)處理,可算出第一頂點(diǎn) 第四頂點(diǎn)的位置。圖51表示將在實(shí)拍圖像中以第一頂點(diǎn) 第四頂點(diǎn)為各角頂點(diǎn)而形成的四角形的各邊等分成16份,以確定該四角形區(qū)域內(nèi)的采樣點(diǎn)的位置的例子。在圖案判別處理中,通過(guò)將實(shí)拍圖像中的采樣點(diǎn)的像素值與模式定義數(shù)據(jù)進(jìn)行核對(duì)(例如,計(jì)算相關(guān)性系數(shù)等),來(lái)判別在實(shí)拍圖像中以第一頂點(diǎn) 第四頂點(diǎn)為各角頂點(diǎn)而形成的區(qū)域中顯示的圖案是否是與畫在標(biāo)記50上的圖案相同。然而,在利用圖51所示的方法來(lái)確定實(shí)拍圖像中的采樣點(diǎn)的情況下,存在著不能進(jìn)行正確的判別的問(wèn)題。例如,模式定義數(shù)據(jù)中的采樣點(diǎn)S(8,2)的像素值為“黑色”,而在圖51的實(shí)拍圖像中的采樣點(diǎn)S(8,2)的像素值卻為“白色”。此外,模式定義數(shù)據(jù)中的采樣點(diǎn)S(8,13)的像素值為“白色”,而在圖51的實(shí)拍圖像中的采樣點(diǎn)S(8,13)的像素值卻為“黑色”。其結(jié)果,有可能錯(cuò)誤地判別為圖50的實(shí)拍圖像中不包含標(biāo)記50。為解決上述問(wèn)題,需要設(shè)法改進(jìn)確定實(shí)拍圖像中的采樣點(diǎn)的位置的方法。下面,對(duì)確定實(shí)拍圖像中的采樣點(diǎn)的位置的方法的其它例子(第一確定方法及第二確定方法)進(jìn)行說(shuō)明。首先,參照?qǐng)D52 圖58來(lái)說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第一確定方法。第一確定方法為,在以第一頂點(diǎn) 第四頂點(diǎn)為各角頂點(diǎn)而形成的四角形中,若相向的2個(gè)邊平行(包括大致平行的情況),則將該2個(gè)邊等分成16份,若相向的2個(gè)邊不平行,則將該2個(gè)邊不均等地分割成16份,并將由此生成的格子的交叉點(diǎn)當(dāng)作采樣點(diǎn)。 例如,在圖52的例子中,由于連接第一頂點(diǎn)和第四頂點(diǎn)的邊、與連接第二頂點(diǎn)和第三頂點(diǎn)的邊平行,因此連接第一頂點(diǎn)和第四頂點(diǎn)的邊、及連接第二頂點(diǎn)和第三頂點(diǎn)的邊分別被等分成16份。另一方面,由于連接第一頂點(diǎn)和第二頂點(diǎn)的邊、與連接第四頂點(diǎn)和第三頂點(diǎn)的邊不平行,因此連接第一頂點(diǎn)和第二頂點(diǎn)的邊、及連接第四頂點(diǎn)和第三頂點(diǎn)的邊未被等分成16份,而是被不均等地分割成16份。即,如圖52所示那樣,將連接第一頂點(diǎn)和第二頂點(diǎn)的邊分割成16份的各點(diǎn)(以下稱為分割點(diǎn)),與將該邊等分成16份的情況相比,分割點(diǎn)更偏向于第一頂點(diǎn)一側(cè)。并且,將連接第四頂點(diǎn)和第三頂點(diǎn)的邊分割成16份的各分割點(diǎn),與將該邊等分成16份的情況相比,分割點(diǎn)更偏向于第四頂點(diǎn)一側(cè)。下面,參照?qǐng)D53 圖55,對(duì)在連接圖52中的第一頂點(diǎn)和第二頂點(diǎn)的邊上、及在連接第四頂點(diǎn)和第三頂點(diǎn)的邊上確定分割點(diǎn)的方法的一例進(jìn)行說(shuō)明。
在以下說(shuō)明中,將連接第一頂點(diǎn)和第二頂點(diǎn)的邊分割成16份的15個(gè)分割點(diǎn),按照尚第一頂點(diǎn)近的順序被稱為第一分割點(diǎn)Ml、第二分割點(diǎn)M2、第三分割點(diǎn)M3、…、第15分割點(diǎn)M15。同樣地,將連接第四頂點(diǎn)和第三頂點(diǎn)的邊分割成16份的15個(gè)分割點(diǎn),按照離第四頂點(diǎn)近的順序,被稱為第一分割點(diǎn)NI、第二分割點(diǎn)N2、第三分割點(diǎn)N3、…、第15分割點(diǎn)N15。首先,如圖53所示那樣確定第八分割點(diǎn)M8及第八分割點(diǎn)NS。具體而言,首先計(jì)算第一頂點(diǎn)與第四頂點(diǎn)之間的 距離、和第二頂點(diǎn)與第三頂點(diǎn)之間的距離。然后,在將第一頂點(diǎn)與第四頂點(diǎn)之間的距離當(dāng)作a,而將第二頂點(diǎn)與第三頂點(diǎn)之間的距離當(dāng)作b的情況下,計(jì)算以a b的比率來(lái)分割第一頂點(diǎn)與第二頂點(diǎn)之間的距離的點(diǎn)、及以a b的比率來(lái)分割第四頂點(diǎn)與第三頂點(diǎn)之間的距離的點(diǎn)。然后,將所算出的前者確定為第八分割點(diǎn)M8,將所算出的后者確定為第八分割點(diǎn)NS。其結(jié)果,第八分割點(diǎn)M8被確定在比第一頂點(diǎn)與第二頂點(diǎn)之間的中點(diǎn)更接近第一頂點(diǎn)的位置,第八分割點(diǎn)NS被確定在比第四頂點(diǎn)與第三頂點(diǎn)之間的中點(diǎn)更接近第四頂點(diǎn)的位置。下面,如圖54所示那樣確定第四分割點(diǎn)M4及第四分割點(diǎn)N4。具體而言,首先,計(jì)算第八分割點(diǎn)M8與第八分割點(diǎn)NS之間的距離。然后,在將該距離當(dāng)作c的情況下,計(jì)算以a c的比率來(lái)分割第一頂點(diǎn)與第八分割點(diǎn)M8之間的距離的點(diǎn)、及以a c的比率來(lái)分割第四頂點(diǎn)與第八分割點(diǎn)NS之間的距離的點(diǎn)。然后,將所算出的前者確定為第四分割點(diǎn)M4,將所算出的后者確定為第四分割點(diǎn)N4。其結(jié)果,第四分割點(diǎn)M4被確定在比第一頂點(diǎn)與第八分割點(diǎn)M8之間的中點(diǎn)更靠近第一頂點(diǎn)的位置,第四分割點(diǎn)N4被確定在比第四頂點(diǎn)與第八分割點(diǎn)NS之間的中點(diǎn)更靠近第四頂點(diǎn)的位置。下面,如圖55所示那樣確定第二分割點(diǎn)M2及第二分割點(diǎn)N2。具體而言,首先,計(jì)算第四分割點(diǎn)M4與第四分割點(diǎn)N4之間的距離。然后,在將該距離當(dāng)作d的情況下,計(jì)算以a d的比率來(lái)分割第一頂點(diǎn)與第四分割點(diǎn)M4之間的距離的點(diǎn)、及以a d的比率來(lái)分割第四頂點(diǎn)與第四分割點(diǎn)N4之間的距離的點(diǎn)。然后,將所算出的前者確定為第二分割點(diǎn)M2,將所算出的后者確定為第二分割點(diǎn)N2。其結(jié)果,第二分割點(diǎn)M2被確定在比第一頂點(diǎn)與第四分割點(diǎn)M4之間的中點(diǎn)更靠近第一頂點(diǎn)的位置,第二分割點(diǎn)N2被確定在比第四頂點(diǎn)與第四分割點(diǎn)N4之間的中點(diǎn)更靠近第四頂點(diǎn)的位置。以下,用同樣的方法來(lái)確定其它分割點(diǎn)(第一分割點(diǎn)Ml、第三分割點(diǎn)M3、第五分割點(diǎn)M5 第七分割點(diǎn)M7、第九分割點(diǎn)M9 第15分割點(diǎn)M15、第一分割點(diǎn)NI、第三分割點(diǎn)N3、第五分割點(diǎn)N5 第七分割點(diǎn)N7、第九分割點(diǎn)N9 第15分割點(diǎn)N15),最后得到如圖52所示的采樣點(diǎn)。另外,在第一確定方法中,若在以第一頂點(diǎn) 第四頂點(diǎn)為各角頂點(diǎn)而形成的四角形中,相向的2個(gè)邊平行,則將該2個(gè)邊等分成16份。下面,參照?qǐng)D56 圖58來(lái)說(shuō)明其理由。在從實(shí)拍圖像中檢測(cè)出如圖56所示的第一頂點(diǎn) 第四頂點(diǎn)的情況下,連接第一頂點(diǎn)和第四頂點(diǎn)的邊、與連接第二頂點(diǎn)和第三頂點(diǎn)的邊是平行的。在此情況下,假設(shè)用如圖53 圖55所示的方法來(lái)將這些邊分割成16份,則如圖57所示那樣,分割連接第一頂點(diǎn)和第四頂點(diǎn)的邊的分割點(diǎn)將整體上偏向于第一頂點(diǎn)的一側(cè),而分割連接第二頂點(diǎn)和第三頂點(diǎn)的邊的分割點(diǎn)將整體上偏向于第二頂點(diǎn)的一側(cè)。然而,在實(shí)拍圖像中以如圖56所示的形狀顯示出標(biāo)記50的情況下(S卩,連接第一頂點(diǎn)和第四頂點(diǎn)的邊、及連接第二頂點(diǎn)和第三頂點(diǎn)的邊是平行的情況下),攝像機(jī)與第一頂點(diǎn)之間的距離、和攝像機(jī)與第四頂點(diǎn)之間的距離是大致相同的。同樣地,攝像機(jī)與第二頂點(diǎn)之間的距離、和攝像機(jī)與第三頂點(diǎn)之間的距離是大致相同的。因此,在此情況下,為了將采樣點(diǎn)的位置確定在更合適的位置上,應(yīng)如圖58所示那樣將連接第一頂點(diǎn)和第四頂點(diǎn)的邊及連接第二頂點(diǎn)和第三頂點(diǎn)的邊等分成16份。下面,參照?qǐng)D59及圖60來(lái)說(shuō)明確定實(shí)拍圖像中的采樣點(diǎn)的位置的第二確定方法。第二確定方法為,如圖59所示,首先延長(zhǎng)以通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的4個(gè)頂點(diǎn)為各角頂點(diǎn)而形成的四角形的4個(gè)邊,并分別算出每一對(duì)相向的邊的交點(diǎn)(第一消失點(diǎn)及第二消失點(diǎn))。在以下說(shuō)明中,在通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出來(lái)的4個(gè)頂點(diǎn)中,將離連接第一消失點(diǎn)和第二消失點(diǎn)的直線(第一直線)最近的頂點(diǎn)稱為頂點(diǎn)A,從該頂點(diǎn)開(kāi)始按逆時(shí)針?lè)较驅(qū)⑵渌旤c(diǎn)依次稱為頂點(diǎn)B、頂點(diǎn)C、頂點(diǎn)D。接下來(lái),計(jì)算通過(guò)頂點(diǎn)C而且與連接第一消失點(diǎn)和第二消失點(diǎn)的直線(第一直線) 平行的直線(第二直線)。然后,計(jì)算通過(guò)頂點(diǎn)A及頂點(diǎn)B的直線與第二直線的交點(diǎn)(第一點(diǎn))、及通過(guò)頂點(diǎn)A及頂點(diǎn)D的直線與第二直線的交點(diǎn)(第二點(diǎn))。接下來(lái),如圖60所示那樣,計(jì)算將第一點(diǎn)與頂點(diǎn)C之間的距離等分成16份的15個(gè)分割點(diǎn),并將這些分割點(diǎn)與第二消失點(diǎn)連接。同樣地,計(jì)算將頂點(diǎn)C與第二點(diǎn)之間的距離等分成16份的15個(gè)分割點(diǎn),并將這些分割點(diǎn)與第一消失點(diǎn)連接。然后,將由此生成的交叉點(diǎn)確定為實(shí)拍圖像中的采樣點(diǎn)。本發(fā)明的發(fā)明人的驗(yàn)證結(jié)果表明,與第一確定方法相比,采用第二確定方法便能夠更合適地確定實(shí)拍圖像中的采樣點(diǎn)。然而,即使是第一確定方法也比圖51所示的方法更為有利,因而至于是采用第一確定方法還是第二確定方法,設(shè)計(jì)人可根據(jù)檢測(cè)精度的要求、或標(biāo)記50的圖案的復(fù)雜程度等條件來(lái)適宜地決定。與圖51所示的方法相比,如上述第一確定方法或第二確定方法中所述那樣,通過(guò)將至少一對(duì)相向的2個(gè)邊中的各邊不均等地分割來(lái)確定實(shí)拍圖像中的采樣點(diǎn),能夠更為正確地判別標(biāo)記50。此外,作為將相向的2個(gè)邊中的各邊不均等地分割的方法,不局限于上述第一確定方法或第二確定方法,也可以采用其它方法。另外,由于剛結(jié)束頂點(diǎn)檢測(cè)處理時(shí),還不知道通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的第一頂點(diǎn) 第四頂點(diǎn)中哪一個(gè)頂點(diǎn)對(duì)應(yīng)于標(biāo)記5 0的左上頂點(diǎn)、左下頂點(diǎn)、右下頂點(diǎn)、右上頂點(diǎn)中的哪一個(gè)頂點(diǎn),所以,可以考慮以下四種情況。即第一頂點(diǎn)對(duì)應(yīng)于左上頂點(diǎn)的情況;第一頂點(diǎn)對(duì)應(yīng)于左下頂點(diǎn)的情況;第一頂點(diǎn)對(duì)應(yīng)于右下頂點(diǎn)的情況;第一頂點(diǎn)對(duì)應(yīng)于右上頂點(diǎn)的情況。由此,在圖案判別處理中,對(duì)于這四種情況,分別進(jìn)行與模式定義數(shù)據(jù)之間的核對(duì)。其結(jié)果,檢測(cè)出實(shí)拍圖像中的左上頂點(diǎn)的坐標(biāo)、左下頂點(diǎn)的坐標(biāo)、右下頂點(diǎn)的坐標(biāo)及右上頂點(diǎn)的坐標(biāo),并將這些坐標(biāo)作為標(biāo)記位置信息而存儲(chǔ)于主存儲(chǔ)器32。另一方面,在游戲裝置10中,根據(jù)實(shí)時(shí)地從攝像機(jī)依次獲取的實(shí)拍圖像,以規(guī)定的周期(例如,以60分之I秒的周期)反復(fù)地執(zhí)行如上所述的輪廓檢測(cè)處理、頂點(diǎn)檢測(cè)處理、粗略判別處理及圖案判別處理。由此,便能實(shí)時(shí)地檢測(cè)出實(shí)拍圖像中的標(biāo)記50的位置。然而,因照射到標(biāo)記50上的光線的狀況等原因,有可能出現(xiàn)雖然在實(shí)拍圖像中顯示出標(biāo)記50,但是實(shí)拍圖像中的標(biāo)記50的輪廓及頂點(diǎn)的檢測(cè)暫時(shí)失敗的情況。若標(biāo)記50的輪廓及頂點(diǎn)的檢測(cè)暫時(shí)失敗,則例如在圖4所示的狀態(tài)下,雖然用戶未移動(dòng)游戲裝置10,但是虛擬對(duì)象60卻暫時(shí)消失。若虛擬對(duì)象60頻繁地消失或出現(xiàn),則用戶會(huì)感到掃興。
在本實(shí)施方式中,為了避免上述不良現(xiàn)象(標(biāo)記位置無(wú)意中發(fā)生變動(dòng))發(fā)生,在當(dāng)前的實(shí)拍圖像中的標(biāo)記50的輪廓及頂點(diǎn)的檢測(cè)失敗的情況下,根據(jù)從前一個(gè)實(shí)拍圖像中檢測(cè)出的標(biāo)記50的頂點(diǎn)(或者采樣點(diǎn))的位置,來(lái)對(duì)當(dāng)前的實(shí)拍圖像進(jìn)行圖案判別處理。在此,“當(dāng)前的實(shí)拍圖像”是指正在處理中的實(shí)拍圖像,而未必是用攝像機(jī)拍攝到的最新的實(shí)拍圖像。具體而言,在當(dāng)前的實(shí)拍圖像中的標(biāo)記50的輪廓及頂點(diǎn)的檢測(cè)失敗的情況下,如圖61所示那樣,從存儲(chǔ)于主存儲(chǔ)器32的標(biāo)記位置信息中,獲取從前一個(gè)實(shí)拍圖像中檢測(cè)出來(lái)的標(biāo)記50的4個(gè)頂點(diǎn)(或者,基于該4個(gè)頂點(diǎn)而確定的采樣點(diǎn))的位置。然后,如圖62所示那樣,根據(jù)從前一個(gè)實(shí)拍圖像中檢測(cè)出的標(biāo)記50的4個(gè)頂點(diǎn)的位置,來(lái)確定當(dāng)前的實(shí)拍圖像中的采樣點(diǎn)的位置,并使用這樣確定了的采樣點(diǎn)(或者,在前一次圖案判別處理中確定了的采樣點(diǎn))的像素值,來(lái)進(jìn)行圖案判別處理。然后,作為該圖案判別處理的結(jié)果,若判斷為當(dāng)前的實(shí)拍圖像中的與前一個(gè)實(shí)拍圖像中的位置相同的位置上存在標(biāo)記50,則將前一個(gè)實(shí)拍圖像中的標(biāo)記50的4個(gè)頂點(diǎn)的坐標(biāo)作為對(duì)應(yīng)于當(dāng)前的實(shí)拍圖像的標(biāo)記位置信息而存儲(chǔ)于主存儲(chǔ)器32。通過(guò)如上所述的處理,在用戶不移動(dòng)游戲裝置10的情況下,即使實(shí)拍圖像中的標(biāo)記50的輪廓及頂點(diǎn)的檢測(cè)暫時(shí)失敗,也能夠檢測(cè)出標(biāo)記50的位置。由此,如上所述,能夠避免用戶未移動(dòng)游戲裝置10而虛擬對(duì)象60卻頻繁地消失或出現(xiàn)這樣的現(xiàn)象發(fā)生。另外,當(dāng)前的實(shí)拍圖像中的標(biāo)記50的位置有可能偏離前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置。于是,在其它實(shí)施方式中,除了前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置以外,還可以將前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置附近的范圍作為對(duì)象來(lái)進(jìn)行圖案判別處理。例如,也可以將從前一個(gè)實(shí)拍圖像中檢測(cè)出的標(biāo)記50的4個(gè)頂點(diǎn)的位置移動(dòng)數(shù)次,每次執(zhí)行圖案判別處理,然后將多次處理的結(jié)果中與模式定義數(shù)據(jù)的最接近的4個(gè)頂點(diǎn)的位置確定為當(dāng)前的實(shí)拍圖像中的標(biāo)記50的4個(gè)頂點(diǎn)的位置。另外,雖然在本實(shí)施方式中,在當(dāng)前的實(shí)拍圖像中的標(biāo)記50的輪廓及頂點(diǎn)的檢測(cè)失敗的情況下,根據(jù)從前一個(gè)實(shí)拍圖像檢測(cè)出的標(biāo)記50的頂點(diǎn)(或者采樣點(diǎn))的位置,來(lái)對(duì)當(dāng)前的實(shí)拍圖像進(jìn)行圖案判別處理,但是不局限于此,也可以根據(jù)從當(dāng)前的實(shí)拍圖像之前的其它任何實(shí)拍圖像中檢測(cè)出來(lái)的標(biāo)記50的頂點(diǎn)(或者采樣點(diǎn))的位置(即,根據(jù)與已存儲(chǔ)于主存儲(chǔ)器32的、其它任何實(shí)拍圖像對(duì)應(yīng)的標(biāo)記位置信息),來(lái)對(duì)當(dāng)前的實(shí)拍圖像進(jìn)行圖案判別處理。另外,雖然在本實(shí)施方式中,在當(dāng)前的實(shí)拍圖像中的標(biāo)記50的輪廓及頂點(diǎn)的檢測(cè)失敗的情況下,根據(jù)從前一個(gè)實(shí)拍圖像中檢測(cè)出的標(biāo)記50的頂點(diǎn)(或者采樣點(diǎn))的位置,來(lái)對(duì)當(dāng)前的實(shí)拍圖像進(jìn)行圖案判別處理,但是上述處理不僅適用于利用如圖48 圖60所示的模式匹配手法來(lái)進(jìn)行圖案判別處理的情況,也適用于利用公知的其它任何模式匹配手法來(lái)進(jìn)行圖案判別處理的情況。<標(biāo)記位置修改處理>下面,說(shuō)明標(biāo)記位置修改處理。標(biāo)記位置修改處理是指,適當(dāng)?shù)匦薷耐ㄟ^(guò)圖案判別處理而檢測(cè)出的標(biāo)記50的位置(即,標(biāo)記50的黑色區(qū)域的4個(gè)頂點(diǎn)的位置)的處理。
對(duì)標(biāo)記位置修改處理進(jìn)行具體說(shuō)明之前,首先說(shuō)明不進(jìn)行標(biāo)記位置修改處理時(shí)有可能出現(xiàn)的不良現(xiàn)象。如上所述,根據(jù)對(duì)實(shí)拍圖像進(jìn)行的輪廓檢測(cè)處理的結(jié)果,能夠檢測(cè)出實(shí)拍圖像中的標(biāo)記50的位置。在該輪廓檢測(cè)處理中,通過(guò)對(duì)比邊界判斷閾值與各個(gè)像素的亮度值來(lái)檢測(cè)邊界像素。在此,若存在具有非常接近邊界判斷閾值的亮度值的像素,例如,該像素有可能在某一個(gè)實(shí)拍圖像中被判斷為黑色區(qū)域,而在下一個(gè)實(shí)拍圖像中被判斷為白色區(qū)域。這樣的現(xiàn)象在完全不移動(dòng)攝像機(jī)(即游戲裝置10)的情況下也會(huì)發(fā)生。其理由是,因?yàn)榄h(huán)境光等影響,各個(gè)像素的亮度值會(huì)隨時(shí)間的變化而略微發(fā)生變化。這樣,輪廓檢測(cè)處理的結(jié)果一有變化,最終檢測(cè)出的實(shí)拍圖像中的標(biāo)記50的位置就會(huì)產(chǎn)生變化,因而,例如即使用戶未移動(dòng)游戲裝置10,圖4所示的虛擬對(duì)象60的位置或方向也會(huì)有所變化。即,虛擬空間圖 像產(chǎn)生抖動(dòng)。為了避免(或改善)這一不良現(xiàn)象的發(fā)生,在本實(shí)施方式中進(jìn)行標(biāo)記位置修改處理。在標(biāo)記位置修改處理中,首先,根據(jù)從前一個(gè)實(shí)拍圖像中檢測(cè)出的標(biāo)記50的位置、及從當(dāng)前的實(shí)拍圖像中檢測(cè)出的標(biāo)記50的位置,計(jì)算出實(shí)拍圖像中的標(biāo)記50的移動(dòng)量。參照?qǐng)D63來(lái)說(shuō)明計(jì)算實(shí)拍圖像中的標(biāo)記50的移動(dòng)量的方法的一例。如圖63所示那樣,將從前一個(gè)實(shí)拍圖像中檢測(cè)出的標(biāo)記50的左上頂點(diǎn)當(dāng)作VpI,將左下頂點(diǎn)當(dāng)作Vp2,將右下頂點(diǎn)當(dāng)作Vp3,將右上頂點(diǎn)當(dāng)作Vp4,將從當(dāng)前的實(shí)拍圖像中檢測(cè)出的標(biāo)記50的左上頂點(diǎn)當(dāng)作Vcl,將左下頂點(diǎn)當(dāng)作Vc2,將右下頂點(diǎn)當(dāng)作Vc3,將右上頂點(diǎn)當(dāng)作Vc4。然后,將Vpl與Vcl之間的距離當(dāng)作a,將Vp2與Vc2之間的距離當(dāng)作b,將Vp3與Vc3之間的距離當(dāng)作C,將Vp4與Vc4之間的距離當(dāng)作d,則實(shí)拍圖像中的標(biāo)記50的移動(dòng)量便成為a~2+b~2+c~2+d~2 ( “”,表示乘方)。在此,上述計(jì)算方法只不過(guò)是一例,計(jì)算在實(shí)拍圖像中的標(biāo)記50的移動(dòng)量的方法不局限于此。算出在實(shí)拍圖像中的標(biāo)記50的移動(dòng)量之后,接下來(lái)根據(jù)該移動(dòng)量,對(duì)在圖案判別處理中檢測(cè)出的標(biāo)記50的位置進(jìn)行修改。參照?qǐng)D64來(lái)說(shuō)明標(biāo)記50的位置的修改方法。在標(biāo)記50的移動(dòng)量小于Dl的情況下,將當(dāng)前的實(shí)拍圖像中的標(biāo)記50的各個(gè)頂點(diǎn)Vc (圖63的Vcl Vc4)的位置分別修改到前一次檢測(cè)出的各個(gè)頂點(diǎn)Vp (圖63的Vpl Vp4)的位置。在此,Dl是規(guī)定的閾值,如后述那樣,根據(jù)實(shí)拍圖像上的標(biāo)記50的大小而相應(yīng)地發(fā)生變化。在標(biāo)記50的移動(dòng)量大于或等于Dl且小于D2的情況下,將當(dāng)前的實(shí)拍圖像中的標(biāo)記50的各個(gè)頂點(diǎn)Vc (圖63的Vcl Vc4)的位置修改到用算式VpXA+VcX (I-A)算出的位置。在此,D2是大于Dl的規(guī)定的閾值,如后述那樣,按照在實(shí)拍圖像上的標(biāo)記50的大小而相應(yīng)地發(fā)生變化。此外,A是大于0且小于I的規(guī)定值,如后述那樣,根據(jù)標(biāo)記50的運(yùn)動(dòng)向量而相應(yīng)地發(fā)生變化。在標(biāo)記50的移動(dòng)量大于或等于D2的情況下,對(duì)當(dāng)前的實(shí)拍圖像中的標(biāo)記50的各個(gè)頂點(diǎn)Vc (圖63的Vcl Vc4)的位置不進(jìn)行修改。如上所述,在標(biāo)記50的移動(dòng)量小于Dl的情況下(即,標(biāo)記50的移動(dòng)量非常小的情況下),視為標(biāo)記50的位置與前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置完全相同。因此,能夠避免如上所述的無(wú)意中發(fā)生的標(biāo)記位置的變動(dòng),其結(jié)果,能夠防止虛擬空間圖像抖動(dòng)的現(xiàn)象。
另外,在標(biāo)記50的移動(dòng)量大于或等于Dl且小于D2的情況下(即,標(biāo)記50的移動(dòng)量較小的情況下),如圖65所示,將標(biāo)記50的位置修改到連接前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置與當(dāng)前的實(shí)拍圖像中的標(biāo)記50的位置的線段上的位置(S卩,以(I-A) A的比率對(duì)從Vp到Vc為止的線段進(jìn)行內(nèi)分后得到的點(diǎn))。這樣,能夠改善如上所述的標(biāo)記位置無(wú)意中發(fā)生變動(dòng),從而減輕虛擬空間圖像的抖動(dòng)。另外,與標(biāo)記50的移動(dòng)量小于Dl的情況不同,修改后的標(biāo)記50的位置比前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置更靠近當(dāng)前的實(shí)拍圖像中的標(biāo)記50的位置,因而當(dāng)用戶略微( 或者緩慢地)移動(dòng)了游戲裝置10時(shí),能夠在改善標(biāo)記位置無(wú)意中發(fā)生變動(dòng)的同時(shí),根據(jù)游戲裝置10的移動(dòng)而相應(yīng)地更新標(biāo)記50的位置(即,虛擬對(duì)象60的位置)。此外,在標(biāo)記50的移動(dòng)量大于或等于D2的情況下(即,標(biāo)記50的移動(dòng)量較大的情況下),不修改標(biāo)記50的位置。這樣,當(dāng)用戶突然大幅移動(dòng)游戲裝置10時(shí),能夠立即響應(yīng)突如其來(lái)的游戲裝置10的移動(dòng),而相應(yīng)地更新標(biāo)記50的位置。因此,例如圖4中所顯示的虛擬對(duì)象60不會(huì)大幅偏離標(biāo)記50。下面,對(duì)確定上述閾值Dl及D2的方法進(jìn)行說(shuō)明。如上所述,上述閾值Dl及D2是用于判斷在實(shí)拍圖像中的標(biāo)記50的移動(dòng)量有多大(即,是非常小,是較小,還是很大)的閾值,優(yōu)選根據(jù)實(shí)拍圖像中的標(biāo)記50的大小來(lái)相應(yīng)地變更這些閾值。下面,參照?qǐng)D66及圖67來(lái)說(shuō)明其理由。圖66示出的是,實(shí)拍圖像上的標(biāo)記50較大的情況下(即,在現(xiàn)實(shí)世界中,標(biāo)記50位于離攝像機(jī)較近的位置的情況下),將虛擬對(duì)象60顯示在前一個(gè)標(biāo)記位置上的例子。在此,假設(shè)前一個(gè)標(biāo)記位置與當(dāng)前的標(biāo)記位置之間的距離(在實(shí)拍圖像上的距離)為D。在此情況下,從用戶的角度來(lái)看,虛擬對(duì)象60似乎沒(méi)有大幅偏離當(dāng)前的標(biāo)記位置。圖67示出的是,實(shí)拍圖像上的標(biāo)記50較小的情況下(即,在現(xiàn)實(shí)世界中,標(biāo)記50位于離攝像機(jī)較遠(yuǎn)的位置的情況下),將虛擬對(duì)象60顯示在前一個(gè)標(biāo)記位置(即,前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置)上的例子。在此情況下,與圖66—樣,假設(shè)前一個(gè)標(biāo)記位置與當(dāng)前的標(biāo)記位置之間的距離(在實(shí)拍圖像上的距離)為D。在此情況下,從用戶的角度來(lái)看,虛擬對(duì)象60似乎大幅偏離了當(dāng)前的標(biāo)記位置。從圖66及圖67可明顯看出,雖然前一個(gè)標(biāo)記位置與當(dāng)前的標(biāo)記位置之間的距離(在實(shí)拍圖像上的距離)相同,但是從用戶的角度來(lái)看,實(shí)拍圖像上的標(biāo)記50越小,前一個(gè)標(biāo)記位置與當(dāng)前的標(biāo)記位置之間偏離看上去越大。所以,如圖68所示,優(yōu)選在實(shí)拍圖像上的標(biāo)記50較大的情況下將Dl的值設(shè)定得較大;而在實(shí)拍圖像上的標(biāo)記50較小的情況下將Dl的值設(shè)定得較小。即,優(yōu)選在實(shí)拍圖像上的標(biāo)記50越小,將Dl的值設(shè)定得越小。同樣地,如圖69所示,優(yōu)選在實(shí)拍圖像上的標(biāo)記50較大的情況下將D2的值設(shè)定得較大;在實(shí)拍圖像上的標(biāo)記50較小的情況下將D2的值設(shè)定得較小。即,優(yōu)選在實(shí)拍圖像上的標(biāo)記50越小,將D2的值設(shè)定得越小。另外,作為計(jì)算實(shí)拍圖像上的標(biāo)記50的大小的方法,可以考慮各種方法。例如,可以將實(shí)拍圖像上的標(biāo)記50的面積作為實(shí)拍圖像上的標(biāo)記50的大小來(lái)進(jìn)行計(jì)算。在其它實(shí)施方式中,也可以將實(shí)拍圖像上的標(biāo)記50的兩個(gè)對(duì)角線的外積的大小作為實(shí)拍圖像上的標(biāo)記50的大小來(lái)進(jìn)行計(jì)算。此外,在其它實(shí)施方式中,也可以將內(nèi)含在實(shí)拍圖像上的標(biāo)記50的4個(gè)頂點(diǎn)的圓的直徑作為實(shí)拍圖像上的標(biāo)記50的大小來(lái)進(jìn)行計(jì)算。此外,在其它實(shí)施方式中,也可以根據(jù)實(shí)拍圖像上的標(biāo)記50的X軸向的寬度及Y軸向的寬度,來(lái)計(jì)算實(shí)拍圖像上的標(biāo)記50的大小。下面,對(duì)確定上述規(guī)定值A(chǔ)的方法進(jìn)行說(shuō)明。
如上所述,在標(biāo)記50的移動(dòng)量大于或等于Dl且小于D2的情況下,如圖65所示,標(biāo)記50的位置被修改到以(I-A) A的比率來(lái)對(duì)連接前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置與當(dāng)前的實(shí)拍圖像中的標(biāo)記50的位置的線段進(jìn)行內(nèi)分后得到的點(diǎn)。在此,在將A的值固定為較小的值(例如,0. I)的情況下,標(biāo)記50的位置被修改到與前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置大致相同的位置。由此導(dǎo)致響應(yīng)性降低,即使實(shí)拍圖像中的標(biāo)記50的位置發(fā)生了變化,虛擬對(duì)象60的位置也不會(huì)發(fā)生太大的變化。因此,存在著以下問(wèn)題例如,當(dāng)用戶將游戲裝置10向希望的方向持續(xù)緩慢地移動(dòng)時(shí),用戶觀看到的虛擬對(duì)象60明顯偏離標(biāo)記50。相反,在將A的值固定為較大的值(例如,0. 9)的情況下,標(biāo)記50的位置被修改到與當(dāng)前的實(shí)拍圖像中的標(biāo)記50的位置大致相同的位置。所以,存在著以下問(wèn)題雖然響應(yīng)性得到提高,但是減輕如上所述的無(wú)意中發(fā)生的標(biāo)記位置的變動(dòng)的效果會(huì)大幅減弱。為解決上述兩個(gè)問(wèn)題,在本實(shí)施方式中,根據(jù)標(biāo)記50的運(yùn)動(dòng)向量來(lái)使A的值變化。具體而言,根據(jù)某一個(gè)實(shí)拍圖像中的標(biāo)記50的位置(例如,標(biāo)記50的各個(gè)頂點(diǎn)的位置)及其前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置,依次計(jì)算表示標(biāo)記50向哪一個(gè)方向移動(dòng)的運(yùn)動(dòng)向量,并將其結(jié)果依次存儲(chǔ)于主存儲(chǔ)器32。然后,根據(jù)新算出的運(yùn)動(dòng)向量及存儲(chǔ)于主存儲(chǔ)器32的過(guò)去已算出的運(yùn)動(dòng)向量,判斷標(biāo)記50在實(shí)拍圖像中是否在一定方向(也可以是大致一定的方向)上持續(xù)地移動(dòng),若標(biāo)記50是在一定方向上持續(xù)地移動(dòng),則將A的值設(shè)定為較大的值,若標(biāo)記50不是在一定方向上持續(xù)地移動(dòng),則將A的值設(shè)定為較小的值。通過(guò)使A的值如上所述那樣變化,例如,在用戶將游戲裝置10向希望的方向緩慢持續(xù)地移動(dòng)的期間,響應(yīng)性得到提高,因而不會(huì)出現(xiàn)虛擬對(duì)象60看上去大幅偏離標(biāo)記50的情況。并且,在除此之外的狀況下,響應(yīng)性會(huì)降低,因而能夠充分發(fā)揮如上所述的改善不希望的標(biāo)記位置的變動(dòng)的效果。此外,雖然在本實(shí)施方式中,如圖64所示,在標(biāo)記50的移動(dòng)量小于Dl的情況下、在標(biāo)記50的移動(dòng)量大于或等于Dl且小于D2的情況下、以及標(biāo)記50的移動(dòng)量大于或等于D2的情況下,采用不同的方法來(lái)修改標(biāo)記50的位置(例如4個(gè)頂點(diǎn)的位置),但這只不過(guò)是一例,修改標(biāo)記50的位置的方法不局限于此。例如,作為其它實(shí)施方式,如圖70所示,在標(biāo)記50的移動(dòng)量小于D3的情況下,也可以將根據(jù)當(dāng)前的實(shí)拍圖像檢測(cè)出的標(biāo)記50的位置修改到前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置;在標(biāo)記50的移動(dòng)量大于或等于D3的情況下,也可以不修改根據(jù)當(dāng)前的實(shí)拍圖像檢測(cè)出的標(biāo)記50的位置而直接使用該位置。這樣能夠防止無(wú)意中發(fā)生的標(biāo)記位置的變動(dòng)。在此,D3是規(guī)定的閾值,但也可以根據(jù)實(shí)拍圖像上的標(biāo)記50的大小而相應(yīng)地改變其值。另外,作為其它實(shí)施方式,如圖71所示,在標(biāo)記50的移動(dòng)量小于D4的情況下,也可以將根據(jù)當(dāng)前的實(shí)拍圖像而檢測(cè)出的標(biāo)記50的位置修改到以(I-A) A的比率來(lái)對(duì)連接前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置與當(dāng)前的實(shí)拍圖像中的標(biāo)記50的位置的線段進(jìn)行內(nèi)分后得到的點(diǎn);在標(biāo)記50的移動(dòng)量大于或等于D4的情況下,也可以不修改根據(jù)當(dāng)前的實(shí)拍圖像檢測(cè)出的標(biāo)記50的位置而直接使用該位置。這樣能夠改善不希望的標(biāo)記位置的變動(dòng)。在此,D4是規(guī)定的閾值,但也可以根據(jù)實(shí)拍圖像上的標(biāo)記50的大小而相應(yīng)地改變其值。另外,雖然在標(biāo)記位置修改處理中,如上所述那樣使用標(biāo)記50的移動(dòng)量或標(biāo)記50的運(yùn)動(dòng)向量來(lái)進(jìn)行處理,但是在實(shí)拍圖像中包含圖案相同的多個(gè)標(biāo)記的情況下,需要分別判定其中哪一個(gè)標(biāo)記移動(dòng)到何處。例如,如圖72所示,在從前一個(gè)實(shí)拍圖像中檢測(cè)出圖案相同的多個(gè)標(biāo)記(標(biāo)記A、標(biāo)記B),而且從當(dāng)前的實(shí)拍圖像中也檢測(cè)出具有與這些標(biāo)記相同的圖案的多個(gè)標(biāo)記(第一標(biāo)記、 第二標(biāo)記)的情況下,需要判別這些標(biāo)記之間的對(duì)應(yīng)關(guān)系。在本實(shí)施方式中,分別計(jì)算從前一個(gè)實(shí)拍圖像中檢測(cè)出的各個(gè)標(biāo)記的代表點(diǎn)與從當(dāng)前的實(shí)拍圖像中檢測(cè)出的各個(gè)標(biāo)記的代表點(diǎn)之間的距離,并在該距離小于規(guī)定的閾值的情況下,判斷為該兩個(gè)標(biāo)記是互相對(duì)應(yīng)的。作為標(biāo)記的代表點(diǎn),例如可以利用通過(guò)對(duì)標(biāo)記的4個(gè)頂點(diǎn)的坐標(biāo)進(jìn)行平均而得到的坐標(biāo)。參照?qǐng)D72來(lái)進(jìn)行具體的說(shuō)明,首先,計(jì)算從標(biāo)記A的代表點(diǎn)到第一標(biāo)記為止的距離,在該距離小于規(guī)定的閾值(較佳的是,在實(shí)拍圖像上的標(biāo)記A或者第一標(biāo)記越大,將該閾值設(shè)定得越大)的情況下,判斷為標(biāo)記A與第一標(biāo)記相對(duì)應(yīng)。同樣地,計(jì)算出從標(biāo)記A的代表點(diǎn)到第二標(biāo)記為止的距離,在該距離小于規(guī)定的閾值(較佳的是,在實(shí)拍圖像上的標(biāo)記A或者第二標(biāo)記越大,將該閾值設(shè)定得越大)的情況下,判斷為標(biāo)記A與第二標(biāo)記相對(duì)應(yīng)。并且,同樣計(jì)算出從標(biāo)記B的代表點(diǎn)到第一標(biāo)記為止的距離,在該距離小于規(guī)定的閾值(較佳的是,在實(shí)拍圖像上的標(biāo)記B或者第一標(biāo)記越大,將該閾值設(shè)定得越大)的情況下,判斷為標(biāo)記B與第一標(biāo)記相對(duì)應(yīng)。并且,同樣計(jì)算出從標(biāo)記B的代表點(diǎn)到第二標(biāo)記為止的距離,在該距離小于規(guī)定的閾值(較佳的是,在實(shí)拍圖像上的標(biāo)記B或者第二標(biāo)記越大,將該閾值設(shè)定得越大)的情況下,便判斷為標(biāo)記B與第二標(biāo)記相對(duì)應(yīng)。通過(guò)如上所述那樣判別標(biāo)記之間的對(duì)應(yīng)關(guān)系,即使在實(shí)拍圖像中包含有圖案相同的多個(gè)標(biāo)記的情況下,也能夠計(jì)算出各個(gè)標(biāo)記的移動(dòng)量或運(yùn)動(dòng)向量。此外,在實(shí)拍圖像包含不同圖案的多個(gè)標(biāo)記的情況下,能夠根據(jù)這些圖案來(lái)判別標(biāo)記之間的對(duì)應(yīng)關(guān)系。另外,雖然在上述標(biāo)記位置修改處理中,根據(jù)從前一個(gè)實(shí)拍圖像中檢測(cè)出的標(biāo)記50的位置、及從當(dāng)前的實(shí)拍圖像中檢測(cè)出的標(biāo)記50的位置,來(lái)計(jì)算實(shí)拍圖像中的標(biāo)記50的移動(dòng)量,但是不局限于此,例如,也可以根據(jù)從當(dāng)前的實(shí)拍圖像之前已獲取的任何實(shí)拍圖像(例如,當(dāng)前的實(shí)拍圖像的前兩個(gè)實(shí)拍圖像等)中檢測(cè)出的標(biāo)記50的位置、及從當(dāng)前的實(shí)拍圖像中檢測(cè)出的標(biāo)記50的位置,來(lái)計(jì)算實(shí)拍圖像中的標(biāo)記50的移動(dòng)量。如上所述,經(jīng)過(guò)輪廓檢測(cè)處理、頂點(diǎn)檢測(cè)處理、粗略判別處理、圖案判別處理及標(biāo)記位置修改處理,而從實(shí)拍圖像中檢測(cè)出標(biāo)記50的位置(例如,標(biāo)記50的黑色區(qū)域的4個(gè)頂點(diǎn)的位置)。然后,根據(jù)這樣檢測(cè)出來(lái)的標(biāo)記50的位置,計(jì)算出現(xiàn)實(shí)空間中的攝像機(jī)(外側(cè)拍攝部(左)23a或外側(cè)拍攝部(右)23b)與標(biāo)記50之間的位置關(guān)系,并根據(jù)該計(jì)算結(jié)果,來(lái)設(shè)定在虛擬空間中的虛擬攝像機(jī)與虛擬對(duì)象60之間的位置關(guān)系。然后,對(duì)應(yīng)于該虛擬攝像機(jī)而生成虛擬空間圖像,在攝像機(jī)所拍攝的實(shí)拍圖像上合成虛擬空間圖像,并將該合成之后的圖像顯示在上部IXD22。
下面,具體說(shuō)明CPU311根據(jù)圖像識(shí)別程序而執(zhí)行的圖像識(shí)別處理的流程。圖73表示存儲(chǔ)于主存儲(chǔ)器32的程序及數(shù)據(jù)在主存儲(chǔ)器32中,存儲(chǔ)有圖像識(shí)別程序70、圖像生成程序71、虛擬對(duì)象數(shù)據(jù)72、虛擬攝像機(jī)數(shù)據(jù)73、模式定義數(shù)據(jù)74、實(shí)拍圖像數(shù)據(jù)75、邊界判斷閾值76、邊界像素信息77、直線信息78、頂點(diǎn)信息79、標(biāo)記位置信息80、運(yùn)動(dòng)向量信息81及各種變數(shù)82。圖像識(shí)別程序70是用于從實(shí)拍圖像中檢測(cè)標(biāo)記的電腦程序,圖像生成程序71是用于根據(jù)標(biāo)記的位置來(lái)在實(shí)拍圖像上合成虛擬空間圖像的電腦程序,該標(biāo)記是根據(jù)圖像識(shí)別程序而檢測(cè)出來(lái)的。這些程序既可以從數(shù)據(jù)保存用內(nèi)部存儲(chǔ)器35載入到主存儲(chǔ)器32中,又可以從外部存儲(chǔ)器44載入到主存儲(chǔ)器32中,也可以經(jīng)由無(wú)線通信模塊36或局部通信模塊37從服務(wù)器裝置或其它游戲裝置下載到主存儲(chǔ)器32中。另外,至于CPU311根據(jù)圖像生成程序71而執(zhí)行的圖像生成處理,可以利用現(xiàn)有技術(shù),由于與本發(fā)明關(guān)連性不大,因此,本說(shuō)明書中省略詳細(xì)的說(shuō)明。另外,也可以將圖像識(shí)別程序70及圖像生成程序71構(gòu)成為一個(gè)圖像處理程序。虛擬對(duì)象數(shù)據(jù)72是有關(guān)配置于虛擬空間的虛擬對(duì)象60的形狀、顏色和圖樣等的數(shù)據(jù)。虛擬攝像機(jī)數(shù)據(jù)73是有關(guān)配置于虛擬空間的虛擬攝像機(jī)的位置或姿勢(shì)等的數(shù)據(jù)。模式定義數(shù)據(jù)74是預(yù)先被存儲(chǔ)的、用于判別標(biāo)記50并表示標(biāo)記50的圖案的數(shù)據(jù)(圖 49)。實(shí)拍圖像數(shù)據(jù)75是攝像機(jī)(外側(cè)拍攝部(左)23a或者外側(cè)拍攝部(右)23b)所拍攝的實(shí)拍圖像的圖像數(shù)據(jù)。邊界判斷閾值76是用于判斷在輪廓檢測(cè)處理中,實(shí)拍圖像的各個(gè)像素是否是邊界像素的閾值。邊界像素信息77是在輪廓檢測(cè)處理中被判定為邊界像素的像素的信息。直線信息78是在直線計(jì)算處理中被生成及被更新的直線的信息。頂點(diǎn)信息79是在頂點(diǎn)計(jì)算處理中計(jì)算出的頂點(diǎn)的信息。標(biāo)記位置信息80是通過(guò)頂點(diǎn)檢測(cè)處理而生成、且在標(biāo)記位置修改處理中根據(jù)需要而被更新的信息,用于表示實(shí)拍圖像中的標(biāo)記50的位置(標(biāo)記50的黑色區(qū)域的4個(gè)頂點(diǎn)的位置)。標(biāo)記位置信息80不僅包括表示從當(dāng)前的實(shí)拍圖像中檢測(cè)出的標(biāo)記50的位置的信息(80a),也包括表示從前一個(gè)實(shí)拍圖像中檢測(cè)出的標(biāo)記50的位置的信息(80b)。運(yùn)動(dòng)向量信息81是表示運(yùn)動(dòng)向量的信息,該運(yùn)動(dòng)向量表示標(biāo)記50移動(dòng)的方向。各種變數(shù)82是執(zhí)行圖像識(shí)別程序70或圖像生成程序71時(shí)所使用的各種變數(shù)(例如,白色區(qū)域亮度Lw、黑色區(qū)域亮度Lb、閾值D1、閾值D2及規(guī)定值A(chǔ)等)。首先,參照?qǐng)D74來(lái)對(duì)CPU311根據(jù)圖像識(shí)別程序而執(zhí)行的圖像識(shí)別處理的整體流程進(jìn)行說(shuō)明。步驟SI中,CPU311獲取攝像機(jī)(外側(cè)拍攝部(左)23a或者外側(cè)拍攝部(右)23b)所拍攝到的實(shí)拍圖像,并將其存儲(chǔ)于主存儲(chǔ)器32。步驟S2中,CPU311進(jìn)行輪廓檢測(cè)處理。對(duì)于輪廓檢測(cè)處理的具體流程,后述中將參照?qǐng)D75來(lái)進(jìn)行說(shuō)明。
步驟S3中,CPU311判斷在步驟S2的輪廓檢測(cè)處理中是否檢測(cè)出輪廓,若檢測(cè)出輪廓,則處理進(jìn)入步驟S4 ;若未檢測(cè)出輪廓,則處理進(jìn)入步驟S9。步驟S4中,CPU311進(jìn)行頂點(diǎn)檢測(cè)處理。對(duì)于頂點(diǎn)檢測(cè)處理的具體流程,在后述中將參照?qǐng)D76來(lái)進(jìn)行說(shuō)明。步驟S5中,CPU311判斷在步驟S4的頂點(diǎn)檢測(cè)處理中是否檢測(cè)出頂點(diǎn),若檢測(cè)出頂點(diǎn),則處理進(jìn)入步驟S6 ;若未檢測(cè)出頂點(diǎn),則處理進(jìn)入步驟S9。步驟S6中,CPU311進(jìn)行粗略判別處理。對(duì)于粗略判別處理的具體流程,在后述中將參照?qǐng)D77來(lái)進(jìn)行說(shuō)明。步驟S7中,CPU311根據(jù)步驟S6的粗略判別處理的結(jié)果,判斷是否存在可以成為 標(biāo)記50的頂點(diǎn)的候補(bǔ)頂點(diǎn),若檢測(cè)出可以成為標(biāo)記50的頂點(diǎn)的候補(bǔ)頂點(diǎn),則處理進(jìn)入步驟S8 ;若未檢測(cè)出可以成為標(biāo)記50的頂點(diǎn)的候補(bǔ)頂點(diǎn),則處理進(jìn)入步驟S12。步驟S8中,CPU311進(jìn)行圖案判別處理。對(duì)于圖案判別處理的具體流程,在后述中將參照?qǐng)D78來(lái)進(jìn)行說(shuō)明。步驟S9中,CPU311根據(jù)前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置(即,從前一個(gè)實(shí)拍圖像中檢測(cè)出來(lái)的頂點(diǎn)的位置或者在前一個(gè)實(shí)拍圖像中確定下來(lái)的采樣點(diǎn)的位置),來(lái)進(jìn)行圖案判別處理。步驟SlO中,CPU311判斷在步驟S8或者步驟S9的圖案判別處理中是否檢測(cè)出標(biāo)記50,若檢測(cè)出頂點(diǎn),則處理進(jìn)入步驟Sll ;若未檢測(cè)出頂點(diǎn),則處理進(jìn)入步驟S12。步驟SI I中,CPU311進(jìn)行標(biāo)記位置修改處理。對(duì)于標(biāo)記位置修改處理的具體流程,在后述中將參照?qǐng)D79來(lái)進(jìn)行說(shuō)明。步驟S12中,CPU311判斷是否要結(jié)束圖像識(shí)別處理,在要繼續(xù)進(jìn)行圖像識(shí)別處理的情況下,返回步驟SI,在要結(jié)束圖像識(shí)別處理的情況下,結(jié)束圖像識(shí)別程序的執(zhí)行。下面,參照?qǐng)D75來(lái)說(shuō)明CPU311根據(jù)圖像識(shí)別程序而執(zhí)行的輪廓檢測(cè)處理的流程。步驟S21中,CPU311確定注目像素P (n)。步驟S22中,CPU311判斷L(n-8)-L(n)是否大于或等于60,若該值大于或等于60,則進(jìn)入步驟S23 ;若該值小于60,則進(jìn)入步驟S34。步驟S23中,CPU311將8作為初始值代入變數(shù)k。步驟S24 中,CPU311 判斷 L(n_k_l)是否小于 L (n_k),若 L (n_k_l)小于 L(n_k),則進(jìn)入步驟S25 ;若L(n-k-l)不小于L(n-k),則進(jìn)入步驟S26。步驟S25中,CPU311使變數(shù)k遞增。步驟S26中,CPU311將L(n_k)確定為白色區(qū)域亮度值Lw。步驟S27中,CPU311判斷L(n)是否小于L (n+2),若L (n)小于L (n+2),則進(jìn)入步驟S28 ;若L(n)不小于L (n+2),則進(jìn)入步驟S30。步驟S28中,CPU311判斷Lw_L(n+2)是否大于或等于60,若該值大于或等于60,則進(jìn)入步驟S29 ;若該值小于60,則進(jìn)入步驟S30。步驟S29中,CPU311將L(n+2)確定為黑色區(qū)域亮度值Lb。步驟S30中,CPU311將L(n)確定為黑色區(qū)域亮度值Lb。步驟S31中,CPU311將Lw和Lb的平均值確定為邊界判斷閾值。步驟S32中,CPU311根據(jù)邊界判斷閾值來(lái)檢測(cè)起點(diǎn)邊界像素。該起點(diǎn)邊界像素的坐標(biāo)作為邊界像素信息被存儲(chǔ)于主存儲(chǔ)器32。步驟S33中,CPU311執(zhí)行以起點(diǎn)邊界像素為起點(diǎn)來(lái)依次追蹤相鄰的邊界像素的邊界追蹤處理。該邊界追蹤處理中依次檢測(cè)出來(lái)的邊界像素的坐標(biāo)作為邊界像素信息而被依次存儲(chǔ)于主存儲(chǔ)器32。步驟S34中,CPU311判斷是否存在下一個(gè)注目像素,若存在則返回步驟S21 ;若不存在(即,在關(guān)于實(shí)拍圖像的所有注目像素候補(bǔ)的處理完畢的情況下)則結(jié)束輪廓檢測(cè)處理。下面,參照?qǐng)D76來(lái)對(duì)CPU311根據(jù)圖像識(shí)別程序而執(zhí)行的頂點(diǎn)檢測(cè)處理的流程進(jìn)行說(shuō)明。步驟S41中,CPU311生成最初的直線(即,與從起點(diǎn)邊界像素Pe(O)到邊界像素 Pe (5)為止的邊界像素相對(duì)應(yīng)的直線Li (0-5)),并將表示該直線的數(shù)據(jù)存儲(chǔ)于主存儲(chǔ)器32。步驟S42中,CPU311根據(jù)假定直線相對(duì)直線的角度來(lái)判斷所生成的直線與假定直線是否在同一直線上(參照?qǐng)D24),其中,上述假定直線是根據(jù)后繼于與該直線對(duì)應(yīng)的邊界像素群的多個(gè)邊界像素而算出的。若在同一直線上,則進(jìn)入步驟S43 ;若不在同一直線上,則進(jìn)入步驟S44。步驟S43中,CPU311更新直線。具體而言,根據(jù)對(duì)應(yīng)于直線的邊界像素群、及對(duì)應(yīng)于假定直線的邊界像素群,并用最小二乘法計(jì)算出直線,并根據(jù)該計(jì)算結(jié)果來(lái)更新直線(即,更新存儲(chǔ)于主存儲(chǔ)器32的、表示該直線的數(shù)據(jù))。步驟S44中,CPU311根據(jù)假定直線相對(duì)于直線的角度來(lái)判斷黑色區(qū)域是否在直線與假定直線的交點(diǎn)處呈凸角(參照?qǐng)D24)。然后,若呈凸角則進(jìn)入步驟S45;若不呈凸角則進(jìn)入步驟S47。步驟S45中,CPU311重新生成與假定直線對(duì)應(yīng)的直線,并將表示該新生成的直線的數(shù)據(jù)重新存儲(chǔ)于主存儲(chǔ)器32。步驟S46中,CPU311判斷是否沿著黑色區(qū)域的輪廓繞了一周(即,是否返回起點(diǎn)邊界像素),若已繞完一周,則進(jìn)入步驟S49 ;若未繞完一周,則返回步驟S42。步驟S47中,CPU311判斷是否正沿著逆時(shí)針?lè)较蜻M(jìn)行直線計(jì)算處理(即步驟S42 步驟S46的處理),若正沿著逆時(shí)針?lè)较蜻M(jìn)行,則進(jìn)入步驟S48 ;若未沿逆時(shí)針?lè)较蜻M(jìn)行,則進(jìn)入步驟S49。本實(shí)施方式中,當(dāng)作首先應(yīng)沿著逆時(shí)針?lè)较蜷_(kāi)始直線計(jì)算處理。步驟S48中,CPU311將進(jìn)行直線計(jì)算處理的方向從逆時(shí)針?lè)较蜃兏鼮轫槙r(shí)針?lè)较颉2襟ES49中,CPU311根據(jù)存儲(chǔ)于主存儲(chǔ)器32的表示多條直線的數(shù)據(jù),判斷在該多條直線中是否存在位于同一直線上且朝向同一方向的多條線段,若存在則進(jìn)入步驟S50 ;若不存在則進(jìn)入步驟S51。步驟S50中,CPU311將位于同一直線上且朝向同一方向的多條線段統(tǒng)合成一條線段,并更新存儲(chǔ)于主存儲(chǔ)器32的有關(guān)多條直線的數(shù)據(jù)。步驟S51中,CPU311根據(jù)存儲(chǔ)于主存儲(chǔ)器32的有關(guān)多條直線的數(shù)據(jù),從該多條直線中選出四條直線。具體而言,計(jì)算出各直線(線段)的長(zhǎng)度,并選出最長(zhǎng)的直線、第二長(zhǎng)的直線、第三長(zhǎng)的直線、及第四長(zhǎng)的直線。
步驟S52中,CPU311通過(guò)計(jì)算出上述四條直線間的交點(diǎn)的位置,來(lái)計(jì)算出黑色區(qū)域的4個(gè)頂點(diǎn)的位置。然后,將該4個(gè)頂點(diǎn)的位置存儲(chǔ)于主存儲(chǔ)器32,并結(jié)束頂點(diǎn)檢測(cè)處理。下面,參照?qǐng)D77來(lái)對(duì)CPU311根據(jù)圖像識(shí)別程序而執(zhí)行的粗略判別處理的流程進(jìn)行說(shuō)明。步驟S61中,CPU311判斷在頂點(diǎn)檢測(cè)處理中檢測(cè)出的4個(gè)頂點(diǎn)是否滿足除外條件
A。如上所述,除外條件A是任何相鄰的2個(gè)頂點(diǎn)之間的距離太近的情況。若上述4個(gè)頂點(diǎn)滿足除外條件A,則進(jìn)入步驟S65 ;若上述4個(gè)頂點(diǎn)不滿足除外條件A,則進(jìn)入步驟S62。步驟S62中,CPU311判斷在頂點(diǎn)檢測(cè)處理中檢測(cè)出的4個(gè)頂點(diǎn)是否滿足除外條件
B。如上所述那樣,除外條件B是任何頂點(diǎn)與不與該頂點(diǎn)相鄰的2個(gè)邊中的任一邊之間的距離太近的情況。若4個(gè)頂點(diǎn)滿足除外條件B則進(jìn)入步驟S65 ;若4個(gè)頂點(diǎn)不滿足除外條件B,則進(jìn)入步驟S63。步驟S63中,CPU311判斷在頂點(diǎn)檢測(cè)處理中檢測(cè)出的4個(gè)頂點(diǎn)是否滿足除外條件
C。如上所述那樣,除外條件C是任何相向的2個(gè)邊的直線大致為同一方向的情況。若滿足除外條件C,則進(jìn)入步驟S65 ;若不滿足除外條件C,則進(jìn)入步驟S64。步驟S64中,CPU311判斷在頂點(diǎn)檢測(cè)處理中檢測(cè)出來(lái)的4個(gè)頂點(diǎn)是否滿足除外條件D。除外條件D是如上所述那樣包括凹角的情況。若滿足除外條件D,則進(jìn)入步驟S65;若不滿足除外條件D,則結(jié)束粗略判別處理。步驟S65中,CPU311將在頂點(diǎn)檢測(cè)處理中檢測(cè)出的4個(gè)頂點(diǎn)從圖案判別處理的處理對(duì)象中排除(例如,將有關(guān)該4個(gè)頂點(diǎn)的數(shù)據(jù)從主存儲(chǔ)器32中刪除)。然后,結(jié)束粗略判別處理。下面,參照?qǐng)D78來(lái)對(duì)CPU311根據(jù)圖像識(shí)別程序而執(zhí)行的圖案判別處理的流程進(jìn)行說(shuō)明。步驟S71中,CPU311從以通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的4個(gè)頂點(diǎn)為角頂點(diǎn)而形成的四角形的4個(gè)邊中,選擇任意相向的2個(gè)邊。步驟S72中,CPU311判斷在步驟S71選出的2個(gè)邊是否平行(包括大致平行的情況),若平行則進(jìn)入步驟S73 ;若不平行則進(jìn)入步驟S74。步驟S73中,CPU311將在步驟S71選出的2個(gè)邊中的各邊等分成16份。步驟S74中,CPU311將在步驟S71選出的2個(gè)邊中的各邊(例如,用圖53 圖55所示的方法)不均等地分割成16份。步驟S75中,CPU311在以通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的4個(gè)頂點(diǎn)為角頂點(diǎn)而形成的四角形的4個(gè)邊中,選出在步驟S71中未選擇的相向的2個(gè)邊。步驟S76中,CPU311判斷在步驟S75選出的2個(gè)邊是否平行(包括大致平行的情況),若平行則進(jìn)入步驟S77 ;若不平行則進(jìn)入步驟S78。步驟S77中,CPU311將在步驟S75選出的2個(gè)邊中的各邊等分成16份。步驟S78中,CPU311將在步驟S75選出的2個(gè)邊中的各邊(例如,用圖53 圖55所示的方法)不均等地分割成16份。步驟S79中,CPU311根據(jù)通過(guò)分割以4個(gè)頂點(diǎn)為角頂點(diǎn)而形成的四角形的4個(gè) 邊而確定的采樣點(diǎn)的像素值、及在模式定義數(shù)據(jù)中定義的采樣點(diǎn)的像素值,來(lái)計(jì)算表示這些采樣點(diǎn)之間的類似程度的相關(guān)性系數(shù),上述4個(gè)頂點(diǎn)是通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的頂點(diǎn)。
步驟S80中,CPU311根據(jù)在步驟S79計(jì)算出的相關(guān)性系數(shù),來(lái)判別以通過(guò)頂點(diǎn)檢測(cè)處理而檢測(cè)出的4個(gè)頂點(diǎn)為角頂點(diǎn)而形成的區(qū)域上顯示出的圖案、與標(biāo)記50的圖案是否一致,若一致則進(jìn)入步驟S81 ;若不一致則結(jié)束圖案判別處理。步驟S81中,CPU311將實(shí)拍圖像中的標(biāo)記50的4個(gè)頂點(diǎn)(左上頂點(diǎn)、左下頂點(diǎn)、右下頂點(diǎn)、右上頂點(diǎn))的坐標(biāo)作為標(biāo)記位置信息來(lái)存儲(chǔ)于主存儲(chǔ)器32。下面,參照?qǐng)D79來(lái)對(duì)CPU311根據(jù)圖像識(shí)別程序而執(zhí)行的標(biāo)記位置修改處理的流程進(jìn)行說(shuō)明。步驟S91中,CPU311計(jì)算出實(shí)拍圖像上的標(biāo)記50的大小,并將其結(jié)果存儲(chǔ)于主存儲(chǔ)器32。步驟S92中,CPU311判斷在前一個(gè)實(shí)拍圖像中是否存在與從當(dāng)前的實(shí)拍圖像中檢測(cè)出的標(biāo)記相同的標(biāo)記,若存在則進(jìn)入步驟S93 ;若不存在則結(jié)束標(biāo)記位置修改處理(即,不修改從當(dāng)前的實(shí)拍圖像中檢測(cè)出的標(biāo)記的位置而直接使用該位置)。在此,至于在前一個(gè)實(shí)拍圖像中是否存在與從當(dāng)前的實(shí)拍圖像中檢測(cè)出的標(biāo)記相同的標(biāo)記,例如可根據(jù)在步驟S91計(jì)算出的標(biāo)記50的大小,并用參照?qǐng)D72進(jìn)行了說(shuō)明的方法來(lái)作出判斷。步驟S93中,CPU311根據(jù)在步驟S91計(jì)算出的標(biāo)記50的大小,來(lái)計(jì)算出閾值Dl及D2 (圖68、圖69),并將其存儲(chǔ)于主存儲(chǔ)器32。步驟S94中,CPU311判斷標(biāo)記50的移動(dòng)量是否小于D1,若小于Dl則進(jìn)入步驟S95 ;若不小于Dl則進(jìn)入步驟S96。步驟S95中,CPU311將在圖案判別處理中檢測(cè)出的標(biāo)記50的位置修改到前一次已檢測(cè)出的標(biāo)記的位置。然后,結(jié)束標(biāo)記位置修改處理。步驟S96中,CPU311判斷標(biāo)記50的移動(dòng)量是否小于D2,若小于D2則進(jìn)入步驟S97 ;若不小于D2則結(jié)束標(biāo)記位置修改處理(S卩,不修改從當(dāng)前的實(shí)拍圖像中檢測(cè)出的標(biāo)記的位置而直接使用該位置)。步驟S97中,CPU311計(jì)算出標(biāo)記50的運(yùn)動(dòng)向量,并根據(jù)該運(yùn)動(dòng)向量及過(guò)去的運(yùn)動(dòng)向量來(lái)確定規(guī)定值A(chǔ)。具體而言,根據(jù)這些運(yùn)動(dòng)向量,判斷在實(shí)拍圖像中標(biāo)記50是否向一定方向持續(xù)移動(dòng),若標(biāo)記50是向一定方向持續(xù)移動(dòng),則使A的值變大;若標(biāo)記50不是向一定方向持續(xù)移動(dòng),則使A的值變小。在此計(jì)算出的運(yùn)動(dòng)向量作為運(yùn)動(dòng)向量信息81而被存儲(chǔ)于主存儲(chǔ)器32。步驟S98中,CPU311將標(biāo)記50的位置修改到以(1_A) A的比率來(lái)對(duì)連接前一個(gè)實(shí)拍圖像中的標(biāo)記50的位置與當(dāng)前的實(shí)拍圖像中的標(biāo)記50的位置的線段進(jìn)行內(nèi)分后得到的點(diǎn)。然后,結(jié)束標(biāo)記位置修改處理。<變形例>另外,雖然在上述實(shí)施方式中,對(duì)于(I)輪廓檢測(cè)處理、(2)頂點(diǎn)檢測(cè)處理、(3)粗略判別處理、(4)圖案判別處理、及(5)標(biāo)記位置修改處理,分別說(shuō)明了具體的處理方法,但是也可以將這些處理中的一個(gè)以上的處理置換成現(xiàn)有技術(shù)中的處理。另外,作為圖像識(shí)別處理的處理對(duì)象的圖像不局限于從攝像機(jī)依次實(shí)時(shí)獲取的實(shí)拍圖像,例如,既可以是過(guò)去用攝像機(jī)拍攝并存儲(chǔ)于數(shù)據(jù)保存用內(nèi)部存儲(chǔ)器35等的圖像,又可以是從其它裝置接收到的圖像,也可以是經(jīng)由外部存儲(chǔ)媒體而獲取的圖像。另外,圖像識(shí)別處理的識(shí)別對(duì)象不局限于標(biāo)記50的黑色區(qū)域,也可以是圖像中包含的任何物體(例如,人的臉或手)或者圖案。另外,圖像識(shí)別處理的處理結(jié)果不僅能夠應(yīng)用于AR技術(shù),也可以應(yīng)用于其它任何用途。
另外,雖然在本實(shí)施方式中,在游戲裝置10中執(zhí)行圖像處理(圖像識(shí)別處理及圖像生成處理),但是不局限于此,也可以在固定型游戲裝置、個(gè)人電腦、手機(jī)等任何信息處理裝置(或者信息處理系統(tǒng))中執(zhí)行圖像處理。另外,雖然在本實(shí)施方式中,在I臺(tái)游戲裝置10中執(zhí)行上述圖像處理,但是在其它實(shí)施方式中,也可以使互相能夠通信的多個(gè)信息處理裝置分擔(dān)執(zhí)行該圖像處理。另外,雖然在本實(shí)施方式中,由一個(gè)CPU311執(zhí)行圖像識(shí)別程序等,但是在其它實(shí)施方式中,也可以由多個(gè)CPU311來(lái)分擔(dān)執(zhí)行圖像識(shí)別程序等。另外,雖然在本實(shí)施方式中,CPU311根據(jù)圖像識(shí)別程序等來(lái)執(zhí)行上述圖像處理,但是在其它實(shí)施方式中,也可以讓CPU311以外的其它硬件來(lái)執(zhí)行圖像處理的一部分。另外,雖然在上述實(shí)施方式中,在攝像機(jī)所拍攝的實(shí)拍圖像上合成虛擬空間圖像并將其顯示在上部LCD22 (視頻透視式(video see-through)),但是取代之,也可以采用光學(xué)透視方式(optical see-through),即在透射式的顯示畫面上顯示虛擬對(duì)象,以使用戶感覺(jué)到在通過(guò)該透射式的顯示畫面而看到的現(xiàn)實(shí)世界中似乎真的存在虛擬對(duì)象。以上對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,但上述說(shuō)明只不過(guò)例示出了本發(fā)明的各個(gè)方面,并沒(méi)有限定其范圍。在不超出本發(fā)明范圍的情況下,當(dāng)然也可以進(jìn)行各種改良和變形。
權(quán)利要求
1.ー種圖像處理裝置,包括 圖像獲取単元,從拍攝裝置中獲取圖像; 邊界像素檢測(cè)單元,從所述圖像中檢測(cè)出一系列的邊界像素,其中,該邊界像素表示物體或者顯示在該物體上的圖案的輪郭; 直線生成単元,基于所述一系列的邊界像素來(lái)生成多條直線; 頂點(diǎn)檢測(cè)單元,基于所述多條直線來(lái)檢測(cè)所述輪郭的頂點(diǎn); 位置姿勢(shì)計(jì)算単元,基于所述頂點(diǎn)來(lái)計(jì)算所述拍攝裝置與所述物體的相對(duì)位置及姿勢(shì); 虛擬攝像機(jī)設(shè)定單元,根據(jù)所述位置及姿勢(shì)來(lái)設(shè)定虛擬空間內(nèi)的虛擬攝像機(jī);及顯示控制単元,使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過(guò)用所述虛擬攝像機(jī)拍攝虛擬空間而得到的。
2.如權(quán)利要求I所述的圖像處理裝置,其特征在于,所述直線生成単元包括直線統(tǒng)合部,該直線統(tǒng)合部將同一直線上的彼此分離的多條線段統(tǒng)合成一條線段。
3.如權(quán)利要求I或2所述的圖像處理裝置,其特征在于,所述直線生成単元包括 第一判斷部,判斷所述一系列的邊界像素中的一部分邊界像素是否在同一直線上;及 直線計(jì)算部,基于由所述第一判斷部判斷為是在同一直線上的一部分邊界像素來(lái)計(jì)算直線。
4.如權(quán)利要求3所述的圖像處理裝置,其特征在于,所述直線計(jì)算部基于由所述第一判斷部判斷為是在同一直線上的多個(gè)邊界像素,并用最小二乗法來(lái)計(jì)算各條直線。
5.如權(quán)利要求I或2所述的圖像處理裝置,其特征在于,所述直線生成単元通過(guò)執(zhí)行以所述一系列的邊界像素中的任意一個(gè)邊界像素為起點(diǎn)、沿著順時(shí)針?lè)较蚝湍鏁r(shí)針?lè)较蛑械哪骋环较蜃粉櫵鲚喞菢硬粩嗌苫蚋轮本€的處理,來(lái)基于所述一系列的邊界像素生成多條直線。
6.如權(quán)利要求5所述的圖像處理裝置,其特征在干, 所述直線生成単元包括判斷部,該判斷部判斷是否能夠繼續(xù)按同一追蹤方向來(lái)生成或更新直線, 若所述判斷部判斷為不能繼續(xù)按同一追蹤方向來(lái)生成或更新所述直線,則所述直線生成單元執(zhí)行從所述起點(diǎn)開(kāi)始、按與現(xiàn)在為止的追蹤方向相反的追蹤方向來(lái)不斷生成或更新直線的處理。
7.如權(quán)利要求5所述的圖像處理裝置,其特征在于,所述直線生成単元包括 最初直線生成部,基于所述起點(diǎn)的邊界像素、和在順時(shí)針?lè)较騻?cè)和逆時(shí)針?lè)较騻?cè)中的某一側(cè)與該起點(diǎn)的邊界像素相連的規(guī)定數(shù)目的邊界像素,來(lái)生成最初的直線; 比較部,將已經(jīng)生成或更新后的直線的方向、與假定直線的方向進(jìn)行比較,其中,所述假定直線是基于在順時(shí)針?lè)较騻?cè)和逆時(shí)針?lè)较騻?cè)中的某一側(cè)與對(duì)應(yīng)于所述直線的邊界像素相連的規(guī)定數(shù)目的邊界像素的直線; 直線更新部,若所述比較部判斷為所述直線和所述假定直線是在同一直線上,則基于所述直線及對(duì)應(yīng)于所述假定直線的多個(gè)邊界像素來(lái)更新所述直線; 新直線生成部,若所述比較部判斷為所述直線和所述假定直線不在同一直線上、并且,與所述直線和所述假定直線的交點(diǎn)對(duì)應(yīng)的所述輪郭的頂點(diǎn)為凸角,則基于所述假定直線來(lái)生成新的直線 '及 處理開(kāi)始部,若所述比較部判斷為所述直線與所述假定直線不在同一直線上、并且,與所述直線和所述假定直線的交點(diǎn)對(duì)應(yīng)的所述輪郭的頂點(diǎn)為凹角,則開(kāi)始進(jìn)行從所述起點(diǎn)的邊界像素起,按與現(xiàn)在為止的追蹤方向相反的追蹤方向來(lái)生成或更新直線的處理。
8.如權(quán)利要求I 7中任ー項(xiàng)所述的圖像處理裝置,其特征在于,還包括直線選擇單元,該直線選擇單元從所述直線生成単元所生成的多條直線中選擇規(guī)定數(shù)目的直線, 所述頂點(diǎn)檢測(cè)單元檢測(cè)出所述直線選擇單元所選擇的所述規(guī)定數(shù)目的直線的交點(diǎn),并將其作為所述輪郭的頂點(diǎn)。
9.如權(quán)利要求8所述的圖像處理裝置,其特征在于,所述直線選擇單元從所述直線生成単元所生成的多條直線中選擇線段長(zhǎng)度較長(zhǎng)的規(guī)定數(shù)目的直線。
10.ー種圖像處理方法,包括 圖像獲取步驟,從拍攝裝置中獲取圖像; 邊界像素檢測(cè)步驟,從所述圖像中檢測(cè)出一系列的邊界像素,其中,該邊界像素表示物體或者顯示在該物體上的圖案的輪郭; 直線生成步驟,基于所述一系列的邊界像素來(lái)生成多條直線; 頂點(diǎn)檢測(cè)步驟,基于所述多條直線來(lái)檢測(cè)所述輪郭的頂點(diǎn); 位置姿勢(shì)計(jì)算步驟,基于所述頂點(diǎn)來(lái)計(jì)算所述拍攝裝置與所述物體的相對(duì)位置及姿勢(shì); 虛擬攝像機(jī)設(shè)定步驟,根據(jù)所述位置及姿勢(shì)來(lái)設(shè)定虛擬空間內(nèi)的虛擬攝像機(jī);及顯示控制步驟,使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過(guò)用所述虛擬攝像機(jī)拍攝虛擬空間而得到的。
11.如權(quán)利要求10所述的圖像處理方法,其特征在于,所述直線生成步驟包括直線統(tǒng)合步驟,該直線統(tǒng)合步驟將同一直線上的彼此分離的多條線段統(tǒng)合成一條線段。
12.如權(quán)利要求10或11所述的圖像處理方法,其特征在于,所述直線生成步驟包括 第一判斷步驟,判斷所述一系列的邊界像素中的一部分邊界像素是否在同一直線上;及 直線計(jì)算步驟,基于在所述第一判斷步驟中判斷為是在同一直線上的一部分邊界像素來(lái)計(jì)算直線。
13.如權(quán)利要求12所述的圖像處理方法,其特征在于,在所述直線計(jì)算步驟中,基于在所述第一判斷步驟中判斷為是在同一直線上的多個(gè)邊界像素,并用最小二乗法來(lái)計(jì)算各條直線。
14.如權(quán)利要求10或11所述的圖像處理方法,其特征在于,在所述直線生成步驟中,通過(guò)執(zhí)行以所述一系列的邊界像素中的任意一個(gè)邊界像素為起點(diǎn)、沿著順時(shí)針?lè)较蚝湍鏁r(shí)針?lè)较蛑械哪骋环较蜃粉櫵鲚喞菢硬粩嗌苫蚋轮本€的處理,來(lái)基于所述一系列的邊界像素生成多條直線。
15.如權(quán)利要求14所述的圖像處理方法,其特征在于,所述直線生成步驟包括 判斷步驟,判斷是否能夠繼續(xù)按同一追蹤方向生成或更新直線, 若在所述判斷步驟中判斷為不能繼續(xù)按同一追蹤方向生成或更新所述直線,則在所述直線生成步驟中執(zhí)行從所述起點(diǎn)開(kāi)始、按與現(xiàn)在為止的追蹤方向相反的追蹤方向來(lái)不斷生成或更新直線的處理。
16.如權(quán)利要求14所述的圖像處理方法,其特征在于,所述直線生成步驟包括 最初直線生成步驟,基于所述起點(diǎn)的邊界像素、和在順時(shí)針?lè)较騻?cè)和逆時(shí)針?lè)较騻?cè)中的某一側(cè)與該起點(diǎn)的邊界像素相連的規(guī)定數(shù)目的邊界像素,來(lái)生成最初的直線; 比較步驟,將已經(jīng)生成或更新后的直線的方向、與假定直線的方向進(jìn)行比較,其中,所述假定直線是基于在順時(shí)針?lè)较騻?cè)和逆時(shí)針?lè)较騻?cè)中的某一側(cè)與對(duì)應(yīng)于所述直線的邊界像素相連的規(guī)定數(shù)目的邊界像素的直線; 直線更新步驟,若在所述比較步驟中判斷為所述直線和所述假定直線是在同一直線上,則基于所述直線及對(duì)應(yīng)于所述假定直線的多個(gè)邊界像素來(lái)更新所述直線; 新直線生成步驟,若在所述比較步驟中判斷為所述直線和所述假定直線不在同一直線上、并且,與所述直線和所述假定直線的交點(diǎn)對(duì)應(yīng)的所述輪郭的頂點(diǎn)為凸角,則基于所述假定直線來(lái)生成新的直線;及 處理開(kāi)始步驟,若在所述比較步驟中判斷為所述直線和所述假定直線不在同一直線上、并且,與所述直線和所述假定直線的交點(diǎn)對(duì)應(yīng)的所述輪郭的頂點(diǎn)為凹角,則開(kāi)始進(jìn)行從所述起點(diǎn)的邊界像素起,按與現(xiàn)在為止的追蹤方向相反的追蹤方向來(lái)生成或更新直線的處理。
17.如權(quán)利要求10 16中任ー項(xiàng)所述的圖像處理方法,其特征在于,該圖像處理方法還包括直線選擇步驟,該直線選擇步驟從在所述直線生成步驟中所生成的多條直線中選擇規(guī)定數(shù)目的直線, 在所述頂點(diǎn)檢測(cè)步驟中,檢測(cè)出在所述直線選擇步驟中所選擇的所述規(guī)定數(shù)目的直線的交點(diǎn),并將其作為所述輪郭的頂點(diǎn)。
18.如權(quán)利要求17所述的圖像處理方法,其特征在于,在所述直線選擇步驟中,從在所述直線生成步驟中所生成的多條直線中選擇線段長(zhǎng)度較長(zhǎng)的規(guī)定數(shù)目的直線。
19.ー種圖像處理系統(tǒng),具備圖像處理裝置和標(biāo)記, 所述圖像處理裝置包括 拍攝部,拍攝所述標(biāo)記; 圖像獲取単元,從所述拍攝部獲取圖像; 邊界像素檢測(cè)單元,從所述圖像檢測(cè)出一系列的邊界像素,其中,該邊界像素表示所述標(biāo)記或者顯示在所述標(biāo)記上的圖案的輪郭; 直線生成単元,基于所述一系列的邊界像素來(lái)生成多條直線; 頂點(diǎn)檢測(cè)單元,基于所述多條直線段來(lái)檢測(cè)所述輪郭的頂點(diǎn); 位置姿勢(shì)計(jì)算単元,基于所述頂點(diǎn)來(lái)計(jì)算所述拍攝裝置與所述物體的相對(duì)位置及姿勢(shì); 虛擬攝像機(jī)設(shè)定單元,根據(jù)所述位置及姿勢(shì)來(lái)設(shè)定虛擬空間內(nèi)的虛擬攝像機(jī);及顯示控制単元,使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過(guò)用所述虛擬攝像機(jī)拍攝虛擬空間而得到的。
20.如權(quán)利要求19所述的圖像處理系統(tǒng),其特征在于,所述直線生成単元包括直線統(tǒng)合単元,該直線統(tǒng)合單元將同一直線上的彼此分離的多條線段統(tǒng)合成一條線段。
21.如權(quán)利要求19或20所述的圖像處理系統(tǒng),其特征在于,所述直線生成単元包括第一判斷部,判斷所述一系列的邊界像素中的一部分邊界像素是否在同一直線上;及直線計(jì)算部,基于由所述第一判斷単元判斷為是在同一直線上的一部分邊界像素來(lái)計(jì)算直線。
22.如權(quán)利要求21所述的圖像處理系統(tǒng),其特征在于,所述直線計(jì)算單元基于由所述第一判斷単元判斷為是在同一直線上的多個(gè)邊界像素,并用最小二乗法來(lái)計(jì)算各條直線。
23.如權(quán)利要求19或20所述的圖像處理系統(tǒng),其特征在于,所述直線生成単元通過(guò)執(zhí)行以所述一系列的邊界像素中的任意一個(gè)邊界像素為起點(diǎn)、沿著順時(shí)針?lè)较蚝湍鏁r(shí)針?lè)较蛑械哪骋环较蜃粉櫵鲚喞菢硬粩嗌苫蚋轮本€的處理,來(lái)基于所述一系列的邊界像素來(lái)生成多條直線。
24.如權(quán)利要求23所述的圖像處理系統(tǒng),其特征在干, 所述直線生成単元包括判斷部,該判斷部判斷是否能夠繼續(xù)按同一追蹤方向生成或更新直線, 若所述判斷部判斷為不能繼續(xù)按同一追蹤方向生成或更新所述直線,則所述直線生成單元執(zhí)行從所述起點(diǎn)開(kāi)始、按與現(xiàn)在為止的追蹤方向相反的追蹤方向來(lái)不斷生成或更新直線的處理。
25.如權(quán)利要求23所述的圖像處理系統(tǒng),其特征在于,所述直線生成単元包括 最初直線生成部,基于所述起點(diǎn)的邊界像素、和在順時(shí)針?lè)较騻?cè)和逆時(shí)針?lè)较騻?cè)中的某一側(cè)與該起點(diǎn)的邊界像素相連的規(guī)定數(shù)目的邊界像素,來(lái)生成最初的直線; 比較部,將已經(jīng)生成或更新后的直線的方向、與假定直線的方向進(jìn)行比較,其中,所述假定直線是基于在順時(shí)針?lè)较騻?cè)和逆時(shí)針?lè)较騻?cè)中的某一側(cè)與對(duì)應(yīng)于所述直線的邊界像素相連的規(guī)定數(shù)目的邊界像素的直線; 直線更新部,若所述比較部判斷為所述直線和所述假定直線是在同一直線上,則基于所述直線及對(duì)應(yīng)于所述假定直線的多個(gè)邊界像素來(lái)更新所述直線; 新直線生成部,若所述比較部判斷為所述直線和所述假定直線不是在同一直線上、并且,與所述直線和所述假定直線的交點(diǎn)對(duì)應(yīng)的所述輪郭的頂點(diǎn)為凸角,則基于所述假定直線來(lái)生成新的直線;及 處理開(kāi)始部,若所述比較部判斷為所述直線和所述假定直線不是在同一直線上、并且,與所述直線和所述假定直線的交點(diǎn)對(duì)應(yīng)的所述輪郭的頂點(diǎn)為凹角,則開(kāi)始進(jìn)行從所述起點(diǎn)的邊界像素起,按與現(xiàn)在為止的追蹤方向相反的追蹤方向來(lái)生成或更新直線的處理。
26.如權(quán)利要求19 25中任一項(xiàng)所述的圖像處理系統(tǒng),其特征在于,還包括直線選擇単元,該直線選擇單元從所述直線生成単元所生成的多條直線中選擇規(guī)定數(shù)目的直線, 所述頂點(diǎn)檢測(cè)單元檢測(cè)出所述直線選擇單元所選擇的所述規(guī)定數(shù)目的直線的交點(diǎn),并將其作為所述輪郭的頂點(diǎn)。
27.如權(quán)利要求26所述的圖像處理系統(tǒng),其特征在干,所述直線選擇單元從所述直線生成単元所生成的多條直線中選擇線段長(zhǎng)度較長(zhǎng)的規(guī)定數(shù)目的直線。
全文摘要
本發(fā)明涉及一種圖像處理裝置、圖像處理系統(tǒng)及圖像處理方法。首先,從拍攝裝置獲取到的圖像中檢測(cè)一系列的邊界像素,該一系列的邊界像素表示物體或者顯示在該物體上的圖案的輪郭。接下來(lái),基于檢測(cè)出來(lái)的一系列的邊界像素來(lái)生成多條線段,并基于該多條線段來(lái)檢測(cè)上述輪廓的頂點(diǎn)。然后,基于檢測(cè)出來(lái)的頂點(diǎn)來(lái)計(jì)算上述拍攝裝置與上述物體的相對(duì)位置及姿勢(shì),并根據(jù)該位置及姿勢(shì)來(lái)設(shè)定虛擬空間中的虛擬攝像機(jī)。最后,使顯示裝置顯示虛擬空間圖像,該虛擬空間圖像是通過(guò)用該虛擬攝像機(jī)拍攝虛擬空間而得到的。
文檔編號(hào)G06K9/46GK102651068SQ20111034601
公開(kāi)日2012年8月29日 申請(qǐng)日期2011年11月2日 優(yōu)先權(quán)日2011年2月24日
發(fā)明者尾迫悟 申請(qǐng)人:任天堂株式會(huì)社