【SLAM十四講】 第五講

視覺slam十四講 之 第五講 相機與圖像

這一講主要就是 內參(針孔模型)與外參(同一點不同座標系轉換),相機畸變(切向和徑向)以及圖像在計算機上的表示。


點雲拼接代碼 pcl編譯問題

我的CMakeLists(並不完整,沒加eigen 略了)

cmake_minimum_required(VERSION 2.8)
set(OpenCV_DIR "/usr/local/opencv-3.1.0/share/OpenCV" )

set(PCL_DIR "/usr/share/pcl-1.7" )

project(joinmap)

find_package(OpenCV 3.1.0 REQUIRED)
find_package(PCL 1.7 REQUIRED)

include_directories( ${OpenCV_INCLUDE_DIRS} )

include_directories(${PCL_INCLUDE_DIR})

add_executable(joinmap main.cpp)

 
target_link_libraries( joinmap ${OpenCV_LIBS} )
target_link_libraries( joinmap ${PCL_LIBRARIES} )



install(TARGETS joinmap RUNTIME DESTINATION bin)

 

之前一直報錯(ps:不用KDevelop,直接用高博源碼可以編譯,在KDevelop底下就不能編譯。pcl的源碼只認include下的頭文件,鏈接不到pcl1.7文件夾下,估計是pcl安裝的有問題pps:但我的確是安裝slam書上寫的默認安裝的..。),和這個人一樣的錯誤https://stackoverflow.com/questions/39844021/ubuntu16-04-run-pcl-in-sublime-text3-fatal-error-usr-include-pcl-1-7-pcl-poin
其實重點就是在於
 

target_include_directories( joinmap 
  PUBLIC ${PCL_INCLUDE_DIRS})


習題

習題2 如果相機分辨率變爲原來的兩倍而其他地方不變,內參如何變化?

假設分辨率爲a \times b,傳感器大小爲m \times n,已知

c_{x}=\frac{a}{2}, c_{y}=\frac{b}{2}, \\ \\ f_{x}=\frac{f}{d_{x}} , f_{y}=\frac{f}{d_{y}}\\ \\ d_{x}=\frac{m}{a}, d_{y}=\frac{n}{b};f_{x}=\frac{fa}{m},f_{y}=\frac{fb}{n}

由上述公式可知,a,b擴大兩倍,則\pmb K變化成

\pmb K^{'}=\begin{bmatrix} 2f_{x} &0 & 2c_{x}\\ 0 & 2f_{y}& 2c_{y}\\ 0& 0&1 \end{bmatrix}

 

習題4 全局快門相機和捲簾快門相機的異同

全局快門(global shutter):是讓整個CMOS每行像素全部在同一時間進行曝光,也就是所有像元同時曝光。

捲簾快門(rolling shutter):是CMOS開始曝光的時候,感光元件是從第一行、第二行、第三行... 這樣按照順序進行光線感測,一直到整片感光組件從上到下每一行都曝光完成爲止,也就是不同行像元的曝光時間不同。
    

  •  全局快門(global shutter)曝光時間更短,這樣不僅能提升效率,也能根除影像果凍現象的問題。
  • 捲簾快門(rolling shutter)曝光時間更長,另外就是在拍照的時候,假如左右工業相機有晃動,或者拍攝快速移動的物體,就會看到畫面上下曝光時間不同而導致的果凍現象。

詳見 https://wenku.baidu.com/view/2f0c8da0ce2f0066f5332283.html

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章