opencv畸變校正 如何利用opencv計算圖像畸變系數(shù),并進行校正與攝像機標定?
如何利用opencv計算圖像畸變系數(shù),并進行校正與攝像機標定?如果圖像已知,相機如何通過相機校準失真?1只需給定一幅圖像,就可以根據(jù)圖像中的相關(guān)特征進行標定,例如,圖像中的物體具有直線度的特征。一般是
如何利用opencv計算圖像畸變系數(shù),并進行校正與攝像機標定?
如果圖像已知,相機如何通過相機校準失真?1只需給定一幅圖像,就可以根據(jù)圖像中的相關(guān)特征進行標定,例如,圖像中的物體具有直線度的特征。
一般是找出物體的邊緣應該是一條直線,在上面取一些點,根據(jù)這些點,圖像中物體的邊緣又會被校正成一條直線。簡而言之,就是運用直線是直線的原理。2目前,張正友在1998年提出的最常用的標定方法是根據(jù)小孔成像原理,通過二維標定板(平面標定板)對相機進行標定,并通過非線性優(yōu)化使投影誤差最小化。它沒有根據(jù)表面上的訓練集進行校準。當然,他寫這篇文章不僅僅是為了糾正歪曲?;儏?shù)只是張正友相機標定方法得到的參數(shù)的一部分,即兩個徑向畸變系數(shù)和兩個切向畸變系數(shù)。消除畸變的目的是使相機盡可能接近針孔相機模型,使相機的直線在成像時保持直線。常用的畸變校正算法都是基于這一原理。當然,有兩種情況。例如,圖像中沒有線性對象。我們該怎么辦?仍然可以校準嗎?答案是肯定的。外極線約束可以用來校正圖像失真。但是,這需要至少兩個圖像,必須在短時間內(nèi)由同一臺相機拍攝。
用opencv的程序做攝像機標定,需要輸入什么參數(shù)?
如果我們知道圖像,我們就不知道攝像機如何通過攝像機校準失真。1:只給一張圖像,可以根據(jù)圖像中的相關(guān)特征進行標定??傊?,它采用的是直線的原理。2:目前最常用的方法是通過二維標定板和非線性優(yōu)化的重建誤差最小化來標定相機。它沒有根據(jù)表面上的訓練集進行校準。3:畸變參數(shù)只是標定方法得到的參數(shù)的一部分,即兩個徑向畸變系數(shù)和兩個切向畸變系數(shù)。消除畸變的目的是使相機盡可能接近針孔相機模型,使相機的直線在成像時保持直線。
如何利用opencv計算圖像畸變系數(shù),并進行校正與攝像機標定?
如果你有一個基準圖,你可以用這個基準圖作為校正的基準:首先用cpselect工具選擇控制點,然后用cp2tform計算校正模型,最后用imtransform對圖像進行校正。有關(guān)具體用法,請參見幫助中的示例