影象處理、立體視覺等等方向常常涉及到四個座標系:世界座標系、相機座標系、影象座標系、畫素座標系。例如下圖:
構建世界座標系只是為了更好的描述相機的位置在**,在雙目視覺中一般將世界座標系原點定在左相機或者右相機或者二者x軸方向的中點。
接下來的重點,就是關於這幾個座標系的轉換。也就是說,乙個現實中的物體是如何在影象中成像的。
於是,從世界座標系到相機座標系,涉及到旋轉和平移(其實所有的運動也可以用旋轉矩陣和平移向量來描述)。繞著不同的座標軸旋轉不同的角度,得到相應的旋轉矩陣,如下圖所示:
那麼從世界座標系到相機座標系的轉換關係如下所示:
從相機座標系到影象座標系,屬於透視投影關係,從3d轉換到2d。
此時投影點p的單位還是mm,並不是pixel,需要進一步轉換到畫素座標系。
畫素座標系和影象座標系都在成像平面上,只是各自的原點和度量單位不一樣。影象座標系的原點為相機光軸與成像平面的交點,通常情況下是成像平面的中點或者叫principal point。影象座標系的單位是mm,屬於物理單位,而畫素座標系的單位是pixel,我們平常描述乙個畫素點都是幾行幾列。所以這二者之間的轉換如下:其中dx和dy表示每一列和每一行分別代表多少mm,即1pixel=dx mm
那麼通過上面四個座標系的轉換就可以得到乙個點從世界座標系如何轉換到畫素座標系的。
其中相機的內參和外參可以通過張正友標定獲取(戳這裡檢視張正友標定的資料)。通過最終的轉換關係來看,乙個三維中的座標點,的確可以在影象中找到乙個對應的畫素點,但是反過來,通過影象中的乙個點找到它在三維中對應的點就很成了乙個問題,因為我們並不知道等式左邊的zc的值。
關於三維重建不是我的方向,但是深度值的獲取是我專案中的乙個需要解決的問題,這將涉及到後面的立體視覺知識。
相機標定 四個座標系的轉換關係
世界座標系,相機座標系,影象物理座標系,畫素座標系之間的關係 首先看下幾個座標繫在放在一塊的樣子 1 世界座標系 根據情況而定,可以表示任何物體,此時是由於相機而引入的。單位m。2 相機座標系 以攝像機光心為原點 在針孔模型中也就是針孔為關心 z軸與光軸重合也就是z軸指向相機的前方 也就是與成像平面...
ARkit相機座標系轉換
arkit預設的座標系是右手系,但它的z軸是指向拍攝者的,也就是和相機鏡頭朝向相反,這給我們利用arkit獲取的資料進行後續處理產生了困難,因為像openmvs或openmvg中相機z軸朝向都是和相機拍攝方向相同 在openmvg的github上找到了這樣乙個issue,裡面的解決方法僅供參考 ca...
多相機座標轉換 相機標定及座標系變換
slam系統需要多種感測器支援,通常市場上常見的就是camera感測器,例如單目攝像頭,雙目攝像頭,rgb d相機等等。不論是深度相機,紅外相機,還是rgb相機,都是需要標定的,每乙個相機的內參都是固定的,相機標定也是產品落地必須做的乙個工程化步驟。多個相機需要對每個相機分別標定。相機矯正上,比較常...