如何去除相机畸变
假設(shè)小伙伴們對(duì)相機(jī)的內(nèi)參比較熟悉的情況下,可以快速理解,如有疑問,可先移步內(nèi)外參鏈接:還沒寫,度娘都有的
第一步:將圖像坐標(biāo)系坐標(biāo)轉(zhuǎn)換到攝像機(jī)坐標(biāo)系坐標(biāo),根據(jù)內(nèi)參模型,有:
X[i]=(x[i]-principal[0])/focal[0];
Y[i]=(y[i]-principal[1])/focal[1];
其中,X[i]、Y[i]為攝像機(jī)去畸變前坐標(biāo),x[i]、y[i]為圖像坐標(biāo)系坐標(biāo),剩余的就不多說了
第二步:去除耦合系數(shù)skew影響,有:
X[i]=X[i]-Y[i]skew;
第三步:利用畸變系數(shù)k1、k2、k3、p1、p2去除徑向畸變和切向畸變,有:
徑向畸變計(jì)算:
temp=X_new[i]X_new[i]+Y_new[i]Y_new[i];
tempKr=1+k1temp+k2temptemp+k3temptemptemp;
切向畸變計(jì)算:
deltax=2p1X_new[i]Y_new[i]+p2(temp+2X_new[i]X_new[i]);
deltay=2p1X_new[i]Y_new[i]+p2(temp+2Y_new[i]*Y_new[i]);
畸變校正
X_new[i]=(X[i]-deltax)/tempKr;
Y_new[i]=(Y[i]-deltay)/tempKr;
重復(fù)以上步驟n次(一般取20左右)
第四步:將攝像機(jī)坐標(biāo)系再轉(zhuǎn)換到圖像坐標(biāo)系
X_new[i]=X_new[i]*focal[0]+principal[0];
Y_new[i]=Y_new[i]*focal[1]+principal[1];
大功告成。仔細(xì)的小伙伴一定會(huì)提出疑問,怎么第三步在用X_new[i]計(jì)算X_new[i],bingo,在矯正前需要給X_new[i]賦初值為X[i]。
總結(jié)
- 上一篇: js判断时间是否在某一时间段内
- 下一篇: 云和恩墨大讲堂 | 基于PCIE 闪存卡