專利名稱:攝像裝置、圖像校正方法以及程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種例如數(shù)碼相機等攝像裝置,尤其涉及一種具備對因攝影對象對應(yīng)的相機的傾斜而導(dǎo)致攝影變形了的圖像進行校正的功能的攝像裝置、和該攝像裝置中采用的圖像校正方法以及程序。
背景技術(shù):
隨著近年來數(shù)碼相機的普及,數(shù)碼相機不單是用于簡單的風(fēng)景或人的攝影,還有對紙張文件或名片等文件、或顯示在黑板等上的內(nèi)容進行攝影,從而將那些圖像數(shù)字化保存在個人計算機等中、并進行管理這樣的用途。
在此,在將文件或黑板等作為攝影對象時,有時因攝影者的位置或照明光等的關(guān)系而從斜方向?qū)z影對象進行攝影。這種情況下,根據(jù)相機的傾斜度圖像會變形成梯形,導(dǎo)致無法判別文字等。
以往,作為對這樣的圖像的變形進行校正的方法,有例如專利文獻1中公開的方法。在該專利文獻1中,提取攝影對象的輪廓信息,基于該輪廓信息對攝像圖像的變形進行校正。由此,即便在將相機傾斜攝影時,也可以得到從正面攝影的矩形圖像。
然而,在上述專利文獻1的方法中,由于采用攝像對象的輪廓信息,因此存在當(dāng)無法正確提取該輪廓信息時則無法進行校正的問題。這時,雖然也有用戶在畫面上指定圖像的輪廓部分的方法,但是如果那樣就非常麻煩,會給用戶造成負(fù)擔(dān)。
專利文獻1特開2005-115711號公報發(fā)明內(nèi)容本發(fā)明就是鑒于上述這樣的問題而形成的,其目的在于提供一種不需要攝像對象的輪廓信息,便可以對傾斜攝像的圖像的變形簡單地進行校正的攝像裝置、圖像校正方法以及程序。
本發(fā)明的一種技術(shù)方案是一種攝像裝置,具備攝影機構(gòu),其獲得攝影對象的圖像;重力檢測機構(gòu),其檢測重力方向;朝向判定機構(gòu),其基于通過該重力檢測機構(gòu)所檢測的重力方向,判定攝像時相機的朝向;參數(shù)計算機構(gòu),其基于通過該朝向判定機構(gòu)所判定的相機的朝向,算出用于將通過所述攝影機構(gòu)所得到的攝影圖像投影校正到規(guī)定的方向的參數(shù);和圖像校正機構(gòu),其采用通過該參數(shù)計算機構(gòu)所算出的參數(shù),對所述攝影圖像的變形進行校正。
圖1是示出作為本發(fā)明的一實施方式的攝像裝置以數(shù)碼相機為例時的攝影狀態(tài)的圖,是令相機的鏡頭為垂直朝向(向下)的狀態(tài)的圖。
圖2是示出作為本發(fā)明的一實施方式的攝像裝置以數(shù)碼相機為例時的攝影狀態(tài)的圖,示出令相機的鏡頭為水平朝向狀態(tài)的圖。
圖3是表示該實施方式中的數(shù)碼相機的電路結(jié)構(gòu)的框圖。
圖4是用于說明該實施方式中的數(shù)碼相機的圖像校正的圖。
圖5是表示該實施方式中的數(shù)碼相機的操作部所具備的SET鍵與上下左右的光標(biāo)鍵的配置的圖。
圖6是表示該實施方式中的數(shù)碼相機與放置在水平方向的攝影對象之間的關(guān)系的圖。
圖7是表示該實施方式中的數(shù)碼相機與放置在垂直方向的攝像對象之間的關(guān)系的圖。
圖8為用于說明該實施方式中的當(dāng)數(shù)碼相機處于垂直方向時的投影校正的圖。
圖9為抽出圖8的O-Q-P面與O-P-S面顯示的10為用于說明該實施方式中的當(dāng)數(shù)碼相機處于水平朝向時的投影校正的圖。
圖11為該實施方式中的由數(shù)碼相機拍攝垂直立足的白板的一部分的圖像的圖。
圖12為表示該實施方式中的數(shù)碼相機的攝影處理的動作的流程圖。
圖13為用于說明該實施方式中的數(shù)碼相機的霍夫變換的圖。
圖14是根據(jù)攝影圖像檢測水平方向的直線的方法進行說明的圖。
具體實施例方式
下面,參照
本發(fā)明的實施方式。
(1)裝置結(jié)構(gòu)圖1以及圖2是示出作為本發(fā)明的一實施方式相關(guān)的攝像裝置以數(shù)碼相機為例時的攝影狀態(tài)的圖。圖1表示令相機的鏡頭為垂直朝向(向下)時的狀態(tài),圖2表示令相機的鏡頭為水平朝向時的狀態(tài)。
另外,以下說明中雖然使用“上下”,“左右”這樣的表示方式,但是這是表示與攝影圖像的坐標(biāo)系對應(yīng)的朝向。即,在現(xiàn)實世界的坐標(biāo)系中,以重力方向為基準(zhǔn)來表示朝向。因此,照相機的朝向表現(xiàn)為“垂直”,“水平”。與此相對,在攝影圖像的坐標(biāo)系中,一般將垂直方向表示為“上下”,將水平方向表示為“左右”。
本實施方式中的數(shù)碼相機1,將被水平置于桌子上等的紙張2、或者垂直立在地板面等上的白板3上筆寫的文字、或粘貼在上面的用紙等作為攝影對象。具備一種功能,即使在從正面以外的方向?qū)υ摂z影對象傾斜攝影時,也能對變形成梯形的圖像進行校正,并生成如同從正面攝影的圖像。
如圖1以及圖2所示,在該數(shù)碼相機1上,設(shè)置光學(xué)透鏡部11、液晶監(jiān)視器12、快門鍵13。
光學(xué)透鏡部11,具備對光進行聚光的透鏡等,對來自攝像對象的光進行聚光。液晶監(jiān)視器12,用于顯現(xiàn)出經(jīng)由光學(xué)透鏡部11而取入內(nèi)部的圖像??扉T鍵13是用于指示攝影時刻的操作鍵。
圖3為表示本實施方式中的數(shù)碼相機1的電路結(jié)構(gòu)的框圖。
數(shù)碼相機1,其結(jié)構(gòu)具備光學(xué)裝置21、圖像傳感器22、存儲器23、顯示裝置24、圖像處理裝置25、操作部26、計算機接口部27、外部存儲IO裝置28、程序代碼存儲裝置29、CPU30、存儲卡31、以及3軸加速度傳感器32。
光學(xué)裝置21,由光學(xué)透鏡部11及其驅(qū)動部組成,在圖像傳感器22上使來自攝影對象的光聚光并使像成像。
圖像傳感器22,用于將通過光學(xué)裝置21所成像的攝影對象的圖像取入作為數(shù)字化了的圖像數(shù)據(jù),由例如CCD(Charge Coupled Device電荷耦合元件)等構(gòu)成。圖像傳感器22被CPU30控制,如果快門鍵13被按下,則生成預(yù)覽用的分辨率低的數(shù)字圖像數(shù)據(jù),將該圖像數(shù)據(jù)以每秒30張左右的間隔定期向像存儲器23送出。并且,圖像傳感器22,在快門鍵13被按下時,生成分辨率高的圖像數(shù)據(jù),并將所生成的圖像數(shù)據(jù)向存儲器23送出。另外,圖像傳感器22可通過CPU30設(shè)定攝像靈敏度(ISO靈敏度),依據(jù)攝影對象的明亮度可進行調(diào)整。
存儲器23暫時存儲來自圖像傳感器22的低分辨率的預(yù)覽圖像、高分辨率的圖像數(shù)據(jù)或者圖像處理裝置25進行圖像處理的源圖像數(shù)據(jù)、以及處理后的圖像數(shù)據(jù)。存儲器23將暫時存儲的圖像數(shù)據(jù)向顯示裝置24或者圖像處理裝置25送出。另外,在該存儲器23中設(shè)置有用于存儲后述的投影校正參數(shù)的參數(shù)存儲區(qū)域。
顯示裝置24具備液晶監(jiān)視器12,用于使圖像顯示在液晶監(jiān)視器12上。顯示裝置24,將存儲器23暫時存儲的低分辨率的預(yù)覽圖像或者分辨率高的圖像顯示在液晶監(jiān)視器12上。
圖像處理裝置25,用于對于被暫時存儲在存儲器23中的圖像數(shù)據(jù)執(zhí)行圖像數(shù)據(jù)的壓縮等圖像處理。另外,在本實施方式中,該圖像處理裝置25,執(zhí)行用于將如圖4(a)、(b)所示的變形成梯形的圖像校正成該圖(c)所示的圖像的處理。
操作部26,除快門鍵13之外還由未圖示的電源鍵、攝影鍵、再生鍵等構(gòu)成,伴隨那些鍵操作的信號被直接向CPU30送出。另外,如圖5所示,該操作部26,具備SET鍵110、和上下左右光標(biāo)鍵111~114。這些鍵110、111~114被用作后述的投影校正的微調(diào)整用操作鍵。
計算機接口部27,在數(shù)碼相機1與計算機(未圖示)連接時,作為USB的存儲類驅(qū)動器工作。由此,若計算機與數(shù)碼相機1連接,則將存儲卡31作為計算機的外部存儲裝置處理。
外部存儲IO裝置28在與存儲卡31之間進行圖像數(shù)據(jù)等的輸入輸出。存儲卡31對從外部存儲IO裝置28供給的圖像數(shù)據(jù)等進行存儲。
程序代碼存儲裝置29用于存儲CPU30執(zhí)行的程序,由ROM或閃存等構(gòu)成。
CPU30,依據(jù)被保存在程序代碼存儲裝置29中的程序來控制系統(tǒng)整體。另外,存儲器23也可以被采用作為CPU30的工作存儲器。
通過按下操作部26的開關(guān)/鍵,在從操作部26發(fā)送操作信息時,CPU30基于該操作信息對圖像傳感器22、存儲器23、顯示裝置24、圖像處理裝置25等進行控制。
具體來說,在從操作部26發(fā)送攝影鍵被按下的意思的操作信息時,則CPU30將各部設(shè)定為攝影模式。在設(shè)定為攝像模式的狀態(tài)下,如果快門鍵13未被按下,則CPU30將圖像傳感器22設(shè)定為預(yù)覽模式,如果快門鍵13被按下,則CPU30將其設(shè)定為讀入分辨率高的攝影對象圖像的高分辨率模式。并且,在發(fā)送再生鍵被按下的意思的操作信息時,CPU30將各部設(shè)定為再生模式。
另外,CPU30或者經(jīng)由外部存儲IO裝置28將預(yù)覽圖像、高分辨率圖像的數(shù)據(jù)記錄在存儲卡31中,或者從存儲卡31讀出所被記錄的圖像數(shù)據(jù)。CPU30在存儲卡31中記錄以例如JPEG格式壓縮后的圖像數(shù)據(jù)。
CPU30,在將圖像數(shù)據(jù)暫時存儲在存儲卡23中之際,將預(yù)覽圖像、高分辨率的圖像數(shù)據(jù)記錄在不同的記錄區(qū)域中。并且,CPU30將圖像數(shù)據(jù)劃分為圖像文件記錄在存儲卡31中。
并且,CPU30或者經(jīng)由外部存儲IO裝置28將預(yù)覽圖像、高分辨率的圖像數(shù)據(jù)記錄在存儲卡31中,或者從存儲卡31中讀出所被記錄的圖像數(shù)據(jù)。CPU30因此在存儲卡31中制作用于保存圖像數(shù)據(jù)的圖像文件。
為了檢測重力方向,而將3軸加速度傳感器32設(shè)置在數(shù)碼相機1的框體內(nèi)。該3軸加速度傳感器32可以從CPU30讀出3軸各自的加速度成分。由此,在CPU30中可以判斷數(shù)碼相機1的攝影方向與重力方向之間的相對關(guān)系。另外,該3軸加速度傳感器32近年來也以各種形式被實用化了,其中一例是采用壓電電阻元件。
接著,針對通過上述結(jié)構(gòu)的數(shù)碼相機1所實現(xiàn)的圖像校正進行詳細(xì)說明。
(2)相機的朝向與投影校正控制在數(shù)碼相機1中搭載3軸加速度傳感器32。通過該3軸加速度傳感器32所檢測的3軸的方向可以進行任意幾何校正。為方便起見,考慮圖6這樣的I、J、K的坐標(biāo)系。令I(lǐng)軸為CCD的橫向、J軸為CCD的縱向、K軸為光軸的方向。
如圖6所示,在令被水平置于桌子等上的紙張2為攝影對象時,數(shù)碼相機1的光軸(K軸)朝著重力方向(G)。在以這樣的朝向進行攝影時,數(shù)碼相機1假定攝影對象被置于水平面上而進行投影校正。
另一方面,如圖7所示,在令垂直立于地板面上的白板3為攝影對象時,數(shù)碼相機1的光軸(K軸)朝著水平方向。在以這樣的朝向進行攝影時,數(shù)碼相機1假定攝影對象被置于垂直方向而進行投影校正。
在此,針對上述兩種投影校正的切換方法進行說明。
將從3軸加速度傳感器32讀出的3軸的各成分記作(i,j,k)。在數(shù)碼相機1為朝下時,由于光軸(K軸)朝向重力方向(G),因此相機朝向的檢測方法,如下述的式1所示利用成分k比其它成分的矢量之和大的條件。
當(dāng)相機被垂直放置時,|k|≥i2+j2]]>當(dāng)相機被水平放置時,|k|<i2+j2]]>……式1并且,作為其它方法,由于預(yù)先知道重力的大小,因此如下述的式2所示,令該重力的大小為|G|,則無論成分K是否大約|G|/2都可以檢測相機的朝向。
當(dāng)相機被垂直放置時,|k|≥|G|/2當(dāng)相機被水平放置時,|k|<|G|/2 ……式2(3)相機為朝下時的投影校正當(dāng)數(shù)碼相機1為朝下時,假定投影對象被水平放置而進行投影校正。所謂投影校正是說利用投影變換的圖像的變形校正(梯形校正)。該投影校正是在J軸方向與K軸方向單獨進行的。首先,針對J軸側(cè)的投影校正進行說明。
圖8為數(shù)碼相機1在J-K平面上相對重力方向傾斜的一例。圖中的點O是數(shù)碼相機1的中心位置。另外,G為通過3軸加速度傳感器32所檢測出的重力矢量。這種情況下,由于數(shù)碼相機1沒有向I軸側(cè)傾斜,因此G的I成分為0。
并且,φ是重力矢量G與K軸所成的角度。即,φ表示攝影對象的垂直方向的傾斜角度。與此相對,后述的φ表示攝像對象的水平方向的傾斜角度。在此,令G方向為0度,為方便起見,由于將J軸向正的角度定義為+方向,因此圖8這樣情況下的角度φ變成負(fù)。
另外,令K軸與J軸所組成的平面與紙張所置的平面F之間的交線為V軸。令I(lǐng)軸與K軸所組成的平面與F平面之間的交線為U軸。在該直線上與數(shù)碼相機1的光軸(K軸)之間的交點為Q,將其作為原點(0,0)。并且,令U-V平面上的某個任意點P的坐標(biāo)為(u,v)。令從點P向U軸上、V軸上引垂線后的點分別為R=(u,0),S=(0,v)。圖9(a)抽出O-Q-S面表示、該圖(b)抽出O-P-S面表示。
圖中f是數(shù)碼相機1的焦點距離??紤]將用數(shù)碼相機1所攝像的圖像從數(shù)碼相機1的中心點O向處于在光軸(K軸)上僅離開f的位置的虛擬屏幕上投影圖像L。令該圖像L的坐標(biāo)系為X-Y,X軸與I軸、Y軸與J軸為相同的朝向。在圖8的例中,表示圖像F上的點P被投影成坐標(biāo)p(x,y)。
這時成立式3的關(guān)系。
x=uα-v/fsinφ]]>y=vcosφα-v/fsinφ]]>……式3其中α=w/f。雖然α表示圖像L的坐標(biāo)系(X-Y)與用紙面的坐標(biāo)系(U-V)之間的尺度關(guān)系,但由于在校正處理中輸出圖像的坐標(biāo)與輸入圖像的坐標(biāo)相同,因此將該尺度α作為1處理。
為了使變換的描述簡單,以后用同類坐標(biāo)系進行描述。U-V平面上的點P的坐標(biāo)(u,v)用下式4表示。H為投影校正參數(shù)(變換矩陣)。
x′y′z′=Huvl]]>
H=a11a12a13a21a22a23a31a32a33]]>……式4其中最終的坐標(biāo)(u,v)通過以下的式5計算x=x′z′=a11u+a12v+a13a31u+a32v+a33]]>y=y′z′=a21u+a22v+a23a31u+a32v+a33]]>……式5在本次坐標(biāo)系中,上述式3由下式表示。其中α=1。
x′y′z′=Hpyuvl]]>其中Hpy=10001/cosψ00tanψ/f1]]>……式6Hpy是圖像在上下方向的投影校正參數(shù)。
同樣,在數(shù)碼相機1的光軸(K軸)僅相對重力G處于I-K側(cè)并傾斜φ時下式的關(guān)系成立x′y′z′=Hpxuvl]]>其中Hpx=1/cosφ00010tanφ/f01]]>……式7式中Hpx是圖像在左右方向的投影校正參數(shù)。
接著,令數(shù)碼相機1的光軸相對重力的方向在I-K軸平面上傾斜φ,在J-K軸平面上僅傾斜ψ這樣的情況下,式6與式7之間的合成關(guān)系成立H=Hpx·Hpy=1/cosφ00010tanφ/f0110001/cosψ00tanψ/f1]]>……式8
另外,在重力矢量G的成分為(i,j,k)時,式8的φ、ψ由下式的關(guān)系求出φ=tan-1(i/k)其中-π/2<φ<π/2ψ=tan-1(j/k)其中-π/2<ψ<π/2 ……式9實際的投影校正為,首先根據(jù)所檢測出的重力矢量G的成分(i,j,k)依據(jù)式9求出φ、ψ。接著,由這些φ、ψ的值求出式8的H=Hpx·Hpy的值。
接著,將H的值和校正圖像的各坐標(biāo)(u,v)代入上述式4中,得到與之對應(yīng)的有投影變形的源圖像的坐標(biāo)(x,y)。這時,由于(x,y)的解并非限于整數(shù),因此作為校正圖像的輸出圖像的像素值P(u,v)可以根據(jù)作為源圖像的輸入圖像的坐標(biāo)(x,y)的周邊的像素采用雙線性插值法由下式求出。另外,所謂雙線性插值法(bilinear interpolation)是一種圖像插補法,是根據(jù)周圍的4個像素值求出其坐標(biāo)的像素值的方法。
P(u,v)=(1-kx)*(1-ky)*p(X,Y)+kx*(1-ky)*p(X+1,Y)+(1-kx)*ky*p(X,Y+1)+kx*ky*p(X+1,Y+1)其中一個圖像的點p的坐標(biāo)為p(x,y),kxx的小數(shù)點后面的值kyy的小數(shù)點后面的值X整數(shù)部分(x)Y整數(shù)部分(y) ……式10在輸出范圍內(nèi)的所有坐標(biāo)點中執(zhí)行以上步驟。由此可以將斜向攝影的圖像校正為從正面方向攝影的圖像。
(4)攝影校正的微調(diào)對被水平置于桌子等上的紙張2進行攝影后的圖像,根據(jù)上述(3)的方法便被很好地投影校正了。只是其中以作為攝影對象的紙面2被水平地放置為前提。因此,在例如桌子斜向傾斜的情況下,也無法正確校正。
在這樣的情況下,用戶通過一邊看被顯示在數(shù)碼相機1的液晶監(jiān)視器12上的校正圖像,一邊操作如圖5所示的上下左右4個光標(biāo)鍵111~114,從而可使投影角度φ、ψ增減以對圖像的形狀進行任意調(diào)整。
(5)相機為水平方向時的投影校正接著,假設(shè)如圖7所示數(shù)碼相機1朝著水平方向?qū)P寫在白板3上的文字、或粘貼在白板3上的紙張等進行攝影的情況。
這種情況下,如圖10所示,數(shù)碼相機1的重力矢量G與作為攝影對象的白板3上的平面F的V軸平行。從而雖然可以求出平面F的V軸與數(shù)碼相機1的光軸K之間所成的角度,但無法對平面F的U軸與數(shù)碼相機1的光軸K之間所成的角度進行特定。
因此,在數(shù)碼相機1處于水平方向時,對于投影圖像僅進行垂直方向的投影校正。即,僅針對因上下之間的長度不均而引起的圖像的變形進行校正。這種情況下,雖然剩下水平方向的變形,但一般來說關(guān)于左右方向,由于攝影者可以將面對攝影對象的位置向右或左改變而容易調(diào)整,因此認(rèn)為不會有特別的障礙。
并且,如果利用上述(4)所述的微調(diào)整功能,則也可以通過左右光標(biāo)鍵113、114的操作由手動來校正水平方向的變形。
如圖10所示,在數(shù)碼相機1處于水平方向時,需要查找重力方向,在該重力方向進行投影校正。因此考慮輔助的I’-J’-K坐標(biāo)空間。
J’軸是在I-J平面上垂直投影G軸的軸,其方向與G軸的朝向相反。I’軸是在相同的I-J平面上相對J’軸以數(shù)碼相機1的原點O為中心旋轉(zhuǎn)-90度的軸。K軸在任何一個坐標(biāo)系都相同。如果數(shù)碼相機1的光軸K與相機長度方向均相對重力G呈直角,則I-J-K空間與I’-J’-K’空間一致。
在此,將白板平面上的U-V坐標(biāo)定義為將I’-J’平面向K軸方向投影后的坐標(biāo)。
并且,與上述(3)的情況同樣,考慮在從數(shù)碼相機1的中心點O向處于在光軸(K軸)上僅離開f的位置的虛擬屏幕上投影圖像L,令該圖像L的坐標(biāo)系為I’-J’坐標(biāo)系的X2-Y2,令X2軸與I’軸、Y2軸與J’軸為相同的朝向。在圖10的例中表示圖像F上的點P(u,v)被向坐標(biāo)p’(x2,y2)投影。
這時,若令點p’在X-Y坐標(biāo)系中的坐標(biāo)為(x,y),則(x,y)與(x2,y2)之間的關(guān)系如下式xyl=HRx2y21]]>其中HR=cosθsinθ0-sinθcosθ0001]]>……式11HR是校正垂直方向與圖像的上下方向的旋轉(zhuǎn)校正參數(shù),表示X-Y坐標(biāo)系與X’-Y’坐標(biāo)系的坐標(biāo)變換。這些坐標(biāo)系所成的角度與I-J坐標(biāo)與I’-J’坐標(biāo)所成的角度θ相同。由于該θ根據(jù)定義是數(shù)碼相機1的旋轉(zhuǎn)軸(J軸)與重力矢量G之間所成的角度,因此由以下式表示θ=tan-1(i/j)其中-π/2<θ<π/2 ……式12并且,白板3的傾斜度只進行V軸側(cè)的校正。即,因為投影校正只要沿著J’軸進行,且進行從J’軸向J軸的坐標(biāo)旋轉(zhuǎn)即可,因此此時的投影變換式由下式提供H=HR·Hpy=cosθsinθ0-sinθcosθ00011000cosψ00-sinψ/f1]]>…式13其中,式13的ψ是光軸K與投影對象平面之間所成的角度,由于現(xiàn)在是假定攝影對象相對重力G呈平行,因此ψ變成K軸在J’-K平面與水平方向的矢量G2所成的角度。因而ψ在重力G的成分為(i,j,k)時變成式14ψ=tan-1(k/i2+j2)]]>其中-π/2<ψ<π/2 ……式14由此,根據(jù)式12、式14求出ψ、θ,通過將其值代入式13從而求出投影校正參數(shù)H。通過將該投影校正參數(shù)H代入上述式4的式中,從而可實現(xiàn)垂直方向的投影校正。
(6)在相機為水平方向且看到水平線時的投影校正在上述(5)的方法中,雖然校正了數(shù)碼相機1在垂直方向的投影變形,但未校正水平方向的投影變形。這是因為投影對象相對相機的光軸在水平面內(nèi)具有怎樣的傾斜度,在3軸加速度傳感器32中是無法特定的。
因此提出了一種根據(jù)攝影對象找出水平方向的直線,根據(jù)該直線推測攝影對象在水平面內(nèi)的傾斜度并進行投影校正的方法。
圖11表示拍攝垂直立足的白板3的一部分后的圖像。圖中斜線所示的部分為白板。在該例中,拍攝了白板3的上邊的直線L1,但表示下部未被收進角度內(nèi)而斷開的狀態(tài)。另外,在該例中處于在垂直方向無投影變形的狀態(tài)。
圖中的直線L1通過進行邊緣處理和霍夫變換(Hough transform)便可以檢測。所謂霍夫變換是一種提取線段的方法。另外,關(guān)于通過霍夫變換進行的直線檢測方法,之后采用圖13詳細(xì)說明。
現(xiàn)在令所檢測的直線L1的式子如下述y=ax+b……式15當(dāng)白板3向U軸(橫軸方向)傾斜時上述式7的關(guān)系成立。并且,直線L1上的點(x,y)的對應(yīng)坐標(biāo)(u,v)始終具有一定的坐標(biāo)。由這些根據(jù)上述式15求出下式的關(guān)系。
φ=tan-1afb]]>……式16從而由下式在垂直方向無投影變形的情況下可以進行校正。
x′y′z′=Hpxuvl]]>其中Hpx=cosφ00010-sinφ/f01]]>……式17根據(jù)以上所述,只要按如下那樣的步驟對攝影圖像進行投影校正即可。
首先,由上述(5)所說明的方法,得到在垂直方向進行投影校正后的圖像。
接著,再次將該校正圖像作為輸入圖像進行水平方向的投影校正。因此制作表示該校正圖像的輪廓的邊緣圖像,通過對該邊緣圖像進行霍夫變換從而算出與水平線接近的直線的式子。
接著,根據(jù)上述所算出的直線的參數(shù)a、b由上述式16求出攝影對象的傾斜度ψ,代入上述式17得到最終的變換式。
另外,在檢測出多條直線時,優(yōu)選根據(jù)各條直線求出ψ,推測它們的平均值作為攝影對象在水平方向的傾斜度并進行投影校正。
(7)改良后的直線檢測法在上述(6)的方法中,由于一旦進行上下方向的投影校正后,必須進行直線檢測,因此耗費處理時間。
因此,根據(jù)未進行上下方向的投影校正的源圖像,進行左右方向的直線的檢測。此時的直線為y=a′x+b′……式18用上述式13將該直線在重力的垂直方向進行校正時的U-V坐標(biāo)的直線式如下述所示v=(a23a32-a22a33)a′+(a22a31-a21a32)b′+(a23a31-a21a33)Δu]]>+(a22a13-a23a12)a′+(a21a12-a11a22)b′+(a21a13-a11a23)Δ]]>Δ=(a33a12-a32a13)a′+(a11a32-a12a31)b′+(a33a11-a31a13)]]>其中aij是H=HR·Hpy中的各要素 ……式19H=HR·Hpy=a11a12a13a21a22a23a31a32a33]]>……式20該直線為在水平方向即橫軸方向變形的直線。對該直線進一步進行變形校正。即,將上述式19的變量(u,v)變換成(x,y),通過與上述式15進行比較可知,根據(jù)上述式16由下式求出水平方向的變形角度φφ=tan-1(a23a32-a22a33)a′+(a22a31-a21a32)b′+(a23+a31-a21a33)(a22a13-a23a12)a′+(a21a12-a11a22)b′+(a21a13-a11a23)f]]>……式21
從而合成投影校正參數(shù)H如下H=HR·Hpy·Hpx]]>=cosθsinθ0-sinθcosθ00011000cosψ00-sinψ/f1cosφ00010-sinφ/f01]]>……式22根據(jù)以上所述,只要按如下那樣的步驟,對攝影圖像進行投影校正即可。
首先,根據(jù)輸入圖像由上述式12、式14求出ψ、θ,求出H=HR·Hpy。
接著,制作邊緣圖像,根據(jù)該邊緣圖像通過霍夫變換對與水平方向接近的直線進行檢測。根據(jù)該直線的參數(shù)由上述式21求出φ,作為最終的投影校正參數(shù),求出H=HR·Hpy·Hpx。由此,采用上述式4通過雙線性插值便可進行投影校正。
(8)實際的動作說明接著,針對實現(xiàn)與上述的相機朝向相應(yīng)的投影校正的數(shù)碼相機1的動作進行說明。另外,以下的流程圖所示的處理,是通過作為微計算機的CPU30讀入被存儲在程序代碼存儲裝置29中的程序,依據(jù)該程序所描述的步驟所執(zhí)行的。
圖12為表示數(shù)碼相機1的攝影處理的動作的流程圖。該處理是由CPU30同時采用圖像處理裝置25所執(zhí)行。以后,以CPU30執(zhí)行的處理步驟為順序進行說明。
首先,CPU30伴隨快門鍵13的按下,對光學(xué)裝置21、圖像傳感器22等進行控制并進行攝影處理,將通過圖像傳感器22所得到的圖像取入存儲器23中(步驟S101)。
接著,為了對數(shù)碼相機1的朝向進行判斷,CPU30從3軸加速度傳感器32中讀出I軸、J軸、K軸每個的成分。這種情況下由于在通常的攝影中是在讓數(shù)碼相機1靜止的狀態(tài)下進行的,因此可以將加速度成分(i,j,k)僅假定為重力成分G,成為G(i,j,k)(步驟S102)。另外,在此所說的數(shù)碼相機1的朝向,是光學(xué)透鏡部11所朝向的方向即光軸K的方向。
在此,將作為投影校正參數(shù)的Hpx、Hpy、HR的3個要素初始化為單位矩陣I(步驟S103)。Hpx是數(shù)碼相機1在水平方向、或者圖像在左右方向的投影校正參數(shù),Hpy是數(shù)碼相機1在垂直方向、或者圖像在上下方向的投影校正參數(shù)。并且,HR是對垂直方向與數(shù)碼相機1的圖像的上下方向進行校正的旋轉(zhuǎn)校正參數(shù)。
接著,CPU30,依據(jù)上述式1或者式2判定數(shù)碼相機1的朝向(步驟S104)。其結(jié)果為,在判定為數(shù)碼相機1垂直朝向時,CPU30根據(jù)重力成分G依據(jù)上述式9求出φ、ψ,通過將該φ、ψ代入上述式6、7的矩陣Hpx、Hpy的要素中,從而求出圖像在左右方向的投影校正參數(shù)Hpx、和圖像在上下方向的投影校正參數(shù)Hpy(步驟S105)。該圖像在左右方向的投影校正參數(shù)Hpx、和圖像在上下方向的投影校正參數(shù)Hpy,分別被存儲在存儲器23的參數(shù)存儲區(qū)域中。
接著,CPU30求出H=HR·Hpy·Hpx(步驟S106)。這時,由于HR被初始化為單位矩陣I,因此投影校正參數(shù)H與上述式8等值。從而通過采用該投影校正參數(shù)H,便可以對被置于水平面的攝影對象的投影變形進行校正。
在按照這樣得到投影校正參數(shù)H時,CPU30將該投影校正參數(shù)H傳遞給圖像處理裝置25并指示投影校正圖像的制作。由此在圖像處理裝置25中,通過對攝影圖像進行投影校正,從而制作如同從正面攝影的矩形的圖像(步驟S107)。
詳細(xì)來說,采用由上述步驟S106所得到的投影校正參數(shù)H,通過將校正圖像的各坐標(biāo)(u,v)依次代入上述式5的變換式中,從而求出與該校正圖像對應(yīng)的有投影變形的源圖像的坐標(biāo)(x,y)。接著,依據(jù)上述式10根據(jù)坐標(biāo)(x,y)的周邊的像素采用雙線性插值法求出校正圖像的各像素值P(u,v)。
CPU30在將按照這樣被投影校正后的圖像復(fù)制在存儲器23的顯示區(qū)域之后,將其顯示在液晶監(jiān)視器12上(步驟S108)。由此用戶便可以在畫面上確認(rèn)校正圖像,根據(jù)需要可以進行微調(diào)整。
校正圖像的顯示之后,CPU30判斷設(shè)置在操作部26上的SET鍵110是否被按下(步驟S109)。在SET鍵110被按下時(步驟S109的“是”),CPU30在用圖像處理裝置25以規(guī)定的方式對校正圖像進行壓縮處理之后(步驟S110),經(jīng)由外部存儲IO裝置28向存儲卡31傳送并保存(步驟S111)。
接著,針對校正圖像的微調(diào)整處理進行說明。
在上述步驟S109中SET鍵110未被按下時,CPU30依據(jù)被設(shè)置在操作部26中的光標(biāo)鍵111~114的操作執(zhí)行校正圖像的微調(diào)整處理(步驟S112)。所謂微調(diào)整處理,是用于對根據(jù)攝影圖像所自動檢測的攝影對象的傾斜度φ與ψ進行微調(diào)整的處理。如圖5所示,光標(biāo)鍵111~114是用于進行上下、左右的方向指示的操作鍵。
CPU30在檢測右光標(biāo)鍵113或者左光標(biāo)鍵114被按下時,對U軸側(cè)的投影變形校正進行微調(diào)整。具體來說,CPU30在右光標(biāo)鍵113被按下時、對于自動檢測出的φ進行+1度的校正;左光標(biāo)鍵114被按下時,對于自動檢測出的φ進行-1度的校正,對圖像在左右方向的投影校正參數(shù)Hpx的變換矩陣進行修正。
同樣,CPU30在上光標(biāo)鍵11被按下時,對于ψ進行+1度的校正;在下光標(biāo)鍵112被按下時對于進行-1度的校正。按照這樣對V軸側(cè)的投影變形校正進行微調(diào)整,對圖像在上下方向的投影校正參數(shù)Hpy的變換矩陣進行修正。
若通過這樣的微調(diào)整對Hpx或者Hpy進行修正,則CPU30返回上述步驟S106,重新求出作為合成變換式的H。由于采用該修正后的H,重新顯示被投影校正后的圖像,因此用戶可以一邊確認(rèn)該校正圖像,一邊進行投影校正的微調(diào)整。在校正圖像可以滿足的情況下,則按下SET鍵110。由此,對最終的校正圖像進行壓縮處理并保存在存儲卡31中。
接著,針對相機的朝向為水平方向時的校正順序進行說明。
在由上述步驟S104判定數(shù)碼相機1的朝向為水平方向時,在步驟S113產(chǎn)生分支。
在數(shù)碼相機1為水平朝向時,CPU30采用上述式12、式14根據(jù)重力矢量G的成分求出ψ、θ的角度,由那些值求出投影校正參數(shù)Hpy和HR(步驟S113)。
接著,采用圖14的攝影圖像一例對根據(jù)攝影圖像檢測水平方向的直線的方法進行說明。攝影圖像中的斜線部的區(qū)域表示在作為攝影對象的黑板稍微傾斜的狀態(tài)下所攝影的區(qū)域。圖中示出攝影圖像的X軸、Y軸。這些軸朝向與相機的坐標(biāo)系I、J相同的方向。
作為重力矢量G=(i,j,k),將該G矢量的I、J成分的部分矢量G’=(i,j)與攝影圖像重疊并圖示。該矢量方向變成攝影圖像中的重力方向。如果所檢測的水平線相對縱向(K軸方向)為等距離且無投影變形時,變成與該G’呈直角的矢量v=(-j,i)方向。如圖所示,該矢量v與I軸所呈的角度θ’變成tan-1(-i/j)的角度。然而,要進行實際檢測的水平方向的直線,以該角度θ’為中心根據(jù)投影變形而改變角度。作為黑板在水平方向的直線一例的圖中直線L1的角度θ1受與θ’相近的角度失真的影響。因而平行線的檢測只要進行具有接近θ’的角度的直線的檢測即可。
通常,由于假設(shè)因投影變形而產(chǎn)生改變的角度差存在大約±30度,因此CPU30所檢測的直線的檢測范圍為以θ’為中心的(θ’-30度~θ’+30度)(步驟S114)。
接著,CPU30,跟蹤輸入圖像的輪廓制作邊緣圖像(步驟S115)。接著,CPU30根據(jù)該邊緣圖像進行霍夫變換并檢測直線,但此時的檢測范圍成為在上述步驟S114所設(shè)定的范圍?;谠谠摍z測范圍內(nèi)通過霍夫變換所得到的(ρ,θ)的投票數(shù)來檢測直線(步驟S117)。
在此針對霍夫變換進行說明。
作為提取線段的方法,有被稱作霍夫變換的方法。例如考慮如圖13所示的x-y坐標(biāo)系中的1根直線y=ax+b。從原點O至該直線引垂線,若令該垂線的長度為ρ,令其與x軸之間所呈的角度為θ,則可以表示為ρ=xcosθ+ysinθ。
即,在極坐標(biāo)系中,如果知道一個點(ρ,θ)就能決定一條直線。將該(ρ,θ)稱作直線y=ax+b的霍夫變換。另外,將由(ρ,θ)所表示的線段上的像素數(shù)稱作(ρ,θ)對應(yīng)的投票數(shù)。該投票數(shù)越高,意味著越長的直線。
CPU30對上述(ρ,θ)的投票數(shù)的最大值與預(yù)先設(shè)定的閾值進行比較,如果在閾值以上,則檢測到水平方向的直線(步驟S118的“是”)。另一方面,當(dāng)比閾值少時,則未檢測到水平方向的直線(步驟S118的“否”)。
在未檢測到水平方向的直線時,轉(zhuǎn)至步驟S106,求出合成變換H。這種情況下,由于沒有求出Hpx而仍然是單位矩陣I,因此此時的H與上述式13相等。因而在步驟S107中變成在將例如白板3等作為攝影對象時的攝影圖像相對重力僅在垂直方向被投影校正。
另一方面,在由步驟S188檢測到直線時,CPU30根據(jù)上述投票最大值的(ρ,θ)求出上述式18的直線參數(shù)a’、b’(步驟S119)。
接著,CPU30,求出合成H=HR·Hpy,在根據(jù)H的要素和上述直線參數(shù)a’、b’,采用上述式21求出水平方向的變形角度φ之后,依據(jù)上述式7求出水平方向的投影校正參數(shù)Hpx(步驟S120)。
按照這樣在檢測到水平方向的直線時,基于該直線便可以算出水平方向的投影校正參數(shù)Hpx。接著,在步驟S106中,采用該Hpx和以前求出的HR、Hpy求出合成變換H,但該H與上述式22相等。因而在步驟S107中,變成將例如白板3等作為攝影對象時的攝影圖像相對重力不僅在垂直方向,還包括水平方向在內(nèi)被投影校正。
并且,在令數(shù)碼相機1為水平朝向進行攝影的情況下,也與在垂直朝向時進行攝影的情況同樣,可進行被投影校正后的圖像的微調(diào)整(步驟S108~S112)。因此,即便在例如白板3稍微斜向傾斜立足的情況下,也可以通過手動操作對校正圖像進行微圖像之后,進行保存。
按照以上所述,根據(jù)本實施方式,根據(jù)由3軸加速度傳感器32所檢測出的重力方向的朝向,判斷數(shù)碼相機1相對被水平或者垂直放置的攝影對象的朝向,通過根據(jù)該朝向來切換投影校正的方法,從而不需要投影對象的輪廓信息便可以正確校正投影圖像的失真。
并且,在像白板3這樣的被垂直置于地板面等上的攝影對象的情況下,雖然通過3軸加速度傳感器32僅根據(jù)重力檢測是無法對圖像在左右方向的失真進行投影校正,但通過從攝影圖像中至少檢測1根水平方向的直線,從而基于該直線便可以對圖像的左右方向進行特定并進行投影校正。
并且,可以一邊在監(jiān)視器畫面上確認(rèn)被投影校正后的圖像,一邊通過上下左右光標(biāo)鍵的操作進行微調(diào)整。由此,在調(diào)整成用戶中意的樣子之后便可以保存該攝影圖像了。
另外,在上述實施方式中,雖然以通過數(shù)碼相機攝影靜態(tài)畫面的情況為例作了說明,但并非限于靜態(tài)畫面的攝影,即使在攝影動態(tài)畫面的情況也可以應(yīng)用。
并且,本發(fā)明除數(shù)碼相機之外,只要是例如帶有相機的移動電話機等、具備攝影功能的電子機器,則可以應(yīng)用于所有這些機器中。
總之,本發(fā)明并非僅限定于上述實施方式本身,在實施階段在不脫離其主旨的范圍內(nèi)還可以對構(gòu)成要素進行變形并具體化。另外,根據(jù)上述實施方式中公開的多個構(gòu)成要素的適當(dāng)?shù)慕M合也可以形成各種發(fā)明。例如也可以從實施方式中公開的所有構(gòu)成要素中刪除幾個構(gòu)成要素。進而,也可以對不同的實施方式中的構(gòu)成要素適當(dāng)進行組合。
還有,上述實施方式中記載的方法,還可以作為可以讓計算機執(zhí)行的程序,或者寫入例如磁盤(軟盤、硬盤)、光盤(CD-ROM、DVD-ROM等)、半導(dǎo)體存儲器等記錄介質(zhì)中并應(yīng)用于各種裝置中,或者將程序本身通過網(wǎng)絡(luò)等傳送介質(zhì)進行傳送后應(yīng)用于各種裝置中。實現(xiàn)本裝置的計算機通過讀入在記錄介質(zhì)中記錄的程序或者經(jīng)由傳送介質(zhì)所提供的程序,并根據(jù)該程序來控制動作,從而執(zhí)行上述處理。
權(quán)利要求
1.一種攝像裝置,具備攝影機構(gòu),其獲得攝影對象的圖像;重力檢測機構(gòu),其檢測重力方向;朝向判定機構(gòu),其基于通過該重力檢測機構(gòu)所檢測的重力方向,判定攝像時相機的朝向;參數(shù)計算機構(gòu),其基于通過該朝向判定機構(gòu)所判定的相機的朝向,算出用于將通過所述攝影機構(gòu)所得到的攝影圖像投影校正到規(guī)定的方向的參數(shù);和圖像校正機構(gòu),其采用通過該參數(shù)計算機構(gòu)所算出的參數(shù),對所述攝影圖像的變形進行校正。
2.根據(jù)權(quán)利要求1所述的攝像裝置,其特征在于,所述參數(shù)計算機構(gòu),在通過所述朝向判定機構(gòu)所判定的相機的朝向為垂直方向時,計算用于對所述攝影圖像進行投影校正的參數(shù),在通過所述朝向判定機構(gòu)所判定的相機的朝向為水平方向時,計算用于將所述攝影圖像向垂直方向投影校正的參數(shù)。
3.根據(jù)權(quán)利要求1所述的攝像裝置,其特征在于,還具備直線檢測機構(gòu),其根據(jù)通過所述攝影機構(gòu)所得到的攝影圖像檢測水平方向的直線;和第二參數(shù)計算機構(gòu),其基于通過所述朝向判定機構(gòu)所判定的相機的朝向和通過所述直線檢測機構(gòu)所檢測的直線,計算用于對通過所述攝影機構(gòu)所得到的攝影圖像進行投影校正的第二參數(shù),其中,采用所述參數(shù)與所述第二參數(shù),對所述攝影圖像的變形進行校正。
4.根據(jù)權(quán)利要求1所述的攝像裝置,其特征在于,具備存儲機構(gòu),其對通過所述參數(shù)計算機構(gòu)所算出的參數(shù)進行存儲;顯示機構(gòu),其對通過所述圖像校正機構(gòu)所校正的圖像進行顯示;變更指示機構(gòu),其對被存儲在所述存儲機構(gòu)中的參數(shù)的變更進行指示;和控制機構(gòu),其依據(jù)由該變更指示機構(gòu)發(fā)出的變更指示對參數(shù)進行變更,并將由該變更后的參數(shù)所得到的校正圖像重新顯示在所述顯示機構(gòu)上。
5.根據(jù)權(quán)利要求4所述的攝像裝置,其特征在于,所述變更指示機構(gòu),通過上下左右方向的光標(biāo)鍵的操作,指示被存儲在所述存儲機構(gòu)中的參數(shù)的變更。
6.一種圖像校正方法,包括攝影步驟,獲得攝影對象的圖像;重力檢測步驟,檢測重力方向;朝向判定步驟,基于所述重力方向,判定在攝像時相機的朝向的步驟;參數(shù)計算步驟,基于所述相機的朝向,計算用于將在所述攝影時所得到的攝影圖像投影校正到規(guī)定的方向的參數(shù);和圖像校正步驟,采用所述參數(shù)對所述攝影圖像的變形進行校正。
7.根據(jù)權(quán)利要求6所述的圖像校正方法,其特征在于,所述參數(shù)計算步驟包括在所述相機的朝向為垂直方向時,計算用于對所述攝影圖像進行投影校正的參數(shù);和在所述相機的朝向為水平方向時,計算用于將所述攝影圖像向垂直方向投影校正的參數(shù)。
8.根據(jù)權(quán)利要求6所述的圖像校正方法,其特征在于,還包括直線檢測步驟,其根據(jù)攝影圖像檢測水平方向的直線;和第二參數(shù)計算步驟,其基于所述相機的朝向和所述水平方向的直線,計算用于對所述攝影圖像進行投影校正的第二參數(shù),其中,采用所述參數(shù)與所述第二參數(shù),對所述攝影圖像的變形進行校正。
9.根據(jù)權(quán)利要求6所述的圖像校正方法,其特征在于,還包括存儲步驟,其將參數(shù)存儲在存儲器中;顯示步驟,其將校正后的攝影圖像顯示在屏幕上;和變更步驟,其依據(jù)規(guī)定的變更指示對被存儲在所述存儲器中的參數(shù)進行變更,并將由所述變更后的參數(shù)所得到的校正圖像重新顯示在所述屏幕上。
10.根據(jù)權(quán)利要求9所述的圖像校正方法,其特征在于,所述規(guī)定的變更指示,通過上下左右光標(biāo)鍵的操作指示被存儲在所述存儲器中的參數(shù)的變更。
11.一種被存儲在計算機可讀取的記錄介質(zhì)中的計算機程序,其讓計算機實現(xiàn)如下功能攝影功能,獲得攝影對象的圖像;重力檢測功能,檢測重力方向;朝向判定功能,基于所述重力方向,判定所述攝像時相機的朝向;參數(shù)計算功能,基于所述相機的朝向,計算用于將在所述攝影時所得到的攝影圖像投影校正到規(guī)定的方向的參數(shù);和圖像校正功能,采用所述參數(shù),對所述攝影圖像的變形進行校正。
12.根據(jù)權(quán)利要求11所述的計算機程序,其特征在于,所述參數(shù)計算功能包括在所述相機的朝向為垂直方向時,計算用于對所述攝影圖像進行投影校正的參數(shù);和在所述相機的朝向為水平方向時,計算用于將所述攝影圖像向垂直方向投影校正的參數(shù)。
13.根據(jù)權(quán)利要求11所述的計算機程序,其特征在于,使計算機還實現(xiàn)如下功能直線檢測功能,根據(jù)攝影圖像檢測水平方向的直線;第二參數(shù)計算功能,基于所述相機的朝向和所述水平方向的直線,計算用于對所述攝影圖像進行投影校正的第二參數(shù),其中,圖像校正功能包括通過采用所述參數(shù)與所述第二參數(shù),對所述攝影圖像的變形進行校正。
14.根據(jù)權(quán)利要求11所述的計算機程序,其特征在于,使計算機還實現(xiàn)如下功能存儲功能,將參數(shù)存儲在存儲器中;顯示功能,將校正后的攝影圖像顯示在屏幕上;和變更功能,依據(jù)規(guī)定的變更指示對被存儲在所述存儲器中的參數(shù)進行變更,并將由所述變更后的參數(shù)所得到的校正圖像重新顯示在所述屏幕上。
15.根據(jù)權(quán)利要求14所述的計算機程序,其特征在于,所述規(guī)定的變更指示,通過上下左右光標(biāo)鍵的操作指示被存儲在所述存儲器中的所述參數(shù)的變更。
全文摘要
數(shù)碼相機(1)具備3軸加速度傳感器(32)。CPU(30),基于通過該3軸加速度傳感器(32)所檢測的重力方向,判定攝像時相機的朝向,基于該相機的朝向計算用于將攝影圖像向規(guī)定方向投影校正的參數(shù),采用該參數(shù)對該攝影圖像的變形進行校正。由此不需要攝影對象的輪廓信息,便可以對傾斜攝影后的圖像的變形進行簡單校正。
文檔編號H04N101/00GK1909590SQ20061011016
公開日2007年2月7日 申請日期2006年8月4日 優(yōu)先權(quán)日2005年8月4日
發(fā)明者櫻井敬一 申請人:卡西歐計算機株式會社