我試著用python和opencv進行相機校準,以找到相機矩陣。我使用了這個鏈接中的以下代碼
。
uj5u.com熱心網友回復:
你的誤解是關于 "焦距"。這是一個超負荷的術語。
你的誤解是關于 "焦距 "的。
1750很可能是正確的,如果你有一個高解析度的圖片(全高清或其他)。
計算方法是:
f[像素]=(焦距[mm])/(像素間距[μm/像素])
(注意單位和前綴,1 mm = 1000 μm)
例子:一部像素間距為1.40微米、焦距為4.38毫米的Pixel 4a手機,其f = ~3128.57(= fx = fy)。
另一個例子。Pixel 4a的對角線視野約為77.7度,解析度為4032 x 3024像素,因此對角線上有5040像素。你可以計算一下:
f = (5040 / 2) / tan(~77.7° / 2)
f = ~3128.6 [像素]
而這個計算方法你可以應用于你知道視場和圖片尺寸的任意相機。如果對角線解析度不明確,則使用水平 FoV和水平解析度。如果傳感器不是16:9,但你從它那里拍攝的視頻被裁剪為16:9,就會發生這種情況......假設裁剪只是垂直裁剪,而不考慮水平的問題。
為什么你在這段代碼中不需要棋盤方塊的大小?因為它只校準了內在引數(相機矩陣和失真系數)。這些并不取決于與棋盤或場景中任何其他物體的距離。
如果你要校準外在引數,即立體聲設定中攝像機的距離,那么你將需要給出方塊的大小。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/311685.html
標籤:
上一篇:變形/華普坐標
