01 01 透視變換簡介
透視變換(Perspective Transformation)即將圖片投影到一個新的視平面,也稱為投影映射。它是二維坐標(biāo)(x,y)到三維坐標(biāo)(X,Y,Z),再到另一個二維空間(u,v)的映射。
02 透視變換原理
到具體實現(xiàn)上,對應(yīng)的的是計算公式見公式(1)-公式(3)。本文不進行詳細(xì)的透視變換公式推理,關(guān)于這些公式推理,讀者可參考本文參考資料或OpenCV官方資料等。
需要著重說明地是,(u,v)是透視變換后圖像的坐標(biāo),(x,y)是源圖像坐標(biāo)。我們進行實際的透視變換實現(xiàn)是遍歷透視變換后圖像坐標(biāo)(u,v),依次求得它對應(yīng)的源圖像坐標(biāo)(x,y)。此時計算得到的源圖像坐標(biāo)(x,y)大概率是小數(shù),所以需要進行一次插值操作,求得源圖像坐標(biāo)(x,y)的像素值,該像素值即為透視變換后圖像坐標(biāo)(u,v)的像素值。 本文只對透視變換的硬件實現(xiàn)做略微詳細(xì)地說明。即:已知透視變換參數(shù)矩陣后(見下圖),如何進行透視變換。
03 透視變換硬件實現(xiàn)方案
如上圖所示為透視變換硬件實現(xiàn)框圖。
透視變換參數(shù)、源圖像、目標(biāo)圖像地址等數(shù)據(jù)通過APB總線配置進入寄存器。
traversal(x,y)將透視變換后圖像坐標(biāo) (u,v)轉(zhuǎn)換為對應(yīng)的源圖像坐標(biāo) (x,y)。
AXI4讀取源圖像數(shù)據(jù),經(jīng)過雙線性插值求得源圖像坐標(biāo) (x,y)的像素值,并將他作為透視變換后圖像坐標(biāo) (u,v)的像素值保存下來。
綜上所述,硬件實現(xiàn)的重點主要在于硬件實現(xiàn)上述的第2步以及第3步,分別對應(yīng)如何實現(xiàn)公式(3)以及如何實現(xiàn)插值操作。
3.1 坐標(biāo)轉(zhuǎn)換
硬件實現(xiàn)透視變換時,需要進行小數(shù)的定點轉(zhuǎn)換。此時需要考慮到乘除法位數(shù)過高帶來的資源消耗以及時序問題。以最高頻率400MHz為例,16bit*16bit或16bit/16bit的乘除法能夠滿足在單個周期內(nèi)實現(xiàn),超出后將會導(dǎo)致時序違例。如何設(shè)定小數(shù)的定點轉(zhuǎn)換,也需要考慮小數(shù)的范圍。以以下的參數(shù)作為例子:目標(biāo)圖像大小為128*128;源圖像大小為640*480。
則,(u,v)設(shè)置為帶符號數(shù)16位整數(shù),0位小數(shù),即s(16,0);
計算得到的(x,y)設(shè)置為帶符號數(shù)11位整數(shù),5位小數(shù),即s(16,5);
m_0,m_1,n_0,n_1設(shè)置為帶符號數(shù)5位整數(shù),11位小數(shù),即s(16,11);
dx,dy,dz設(shè)置為帶符號數(shù)11位整數(shù),5位小數(shù),即s(16,5);
p_0,p_1設(shè)置為帶符號數(shù)1位整數(shù),15位小數(shù),即s(16,15)。
設(shè)置好定點小數(shù)的格式后再進行公式(3)的計算即可。
3.2 插值
較為常見的圖像插值方法有最近鄰插值、雙線性插值、雙三次插值。兼顧插值效果與實現(xiàn)復(fù)雜度,可以選擇雙線性插值,實現(xiàn)原理見下圖。
04 最終結(jié)果展示
源圖像:
透視變換后圖像:
審核編輯:黃飛
-
透視變換
+關(guān)注
關(guān)注
0文章
3瀏覽量
1354
原文標(biāo)題:一種硬件實現(xiàn)透視變換的方法
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論