理解好圖像的點云拼接,需要從相機的模型說起。理解相機的成像原理之后,便可更為深刻的理解圖像的點云如何拼接在一起。
首先說下相機的概念與原理。
相機概念與原理
相機的作用:將三維世界中的坐標點(單位為米)映射到二維圖像平面(單位為像素)。
通常我們見到的相機都是針孔相機,但是不是簡單的 針孔,還有透鏡的畸變存在,所以在做圖像處理時要進行畸變校正。
由于畸變的存在,我們在使用相機之前都要進行相機標定。
目的就是求出內參對于簡單的應用求出徑向畸變和切向畸變就夠了。
所謂的外參就是相機的位姿。
有了外參、內參、圖像、深度信息 便可以把圖像中的點,轉到世界坐標系下,并帶有RGB的顏色。就形成了所謂的點云。
相關的公式也很好理解 ,就是通過相似三角形的原理。
注意其中fx 、fy、 cx 、cy也就是相機的內參了。在相機出廠時會給出。
理解了相機的概念與原理,來編輯代碼實現下。
Code實現
全部代碼
先放上全部代碼,再進行分段講解
代碼講解
讀取對應路徑下的彩色圖像、深度圖像、相機的位姿。
上面說了,有了這三個量再加上相機內參,就可以得到點云。
//相機內參
傳說中的相機內參
//定義點云使用的格式
聲明pcl的格式創建一個點云,然后開始for循環處理每一張圖片和對應的深度圖片與相機位姿。
得到要處理的彩色圖像深度圖像對應的pose,然后for循環處理每一個像素。
得到深度信息
通過:
這個公式得到相機坐標系下的 x,y,z
相機坐標系下的點通過坐標變換轉到世界坐標系下。
賦值點云的坐標與顏色。
保存成點云文件。
責任編輯:lq6
-
圖像
+關注
關注
2文章
1087瀏覽量
40503 -
拼接
+關注
關注
0文章
15瀏覽量
12677
原文標題:圖像的點云拼接-原理講解與代碼實現
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論