如何去除相机畸变
假設小伙伴們對相機的內參比較熟悉的情況下,可以快速理解,如有疑問,可先移步內外參鏈接:還沒寫,度娘都有的
第一步:將圖像坐標系坐標轉換到攝像機坐標系坐標,根據內參模型,有:
X[i]=(x[i]-principal[0])/focal[0];
Y[i]=(y[i]-principal[1])/focal[1];
其中,X[i]、Y[i]為攝像機去畸變前坐標,x[i]、y[i]為圖像坐標系坐標,剩余的就不多說了
第二步:去除耦合系數skew影響,有:
X[i]=X[i]-Y[i]skew;
第三步:利用畸變系數k1、k2、k3、p1、p2去除徑向畸變和切向畸變,有:
徑向畸變計算:
temp=X_new[i]X_new[i]+Y_new[i]Y_new[i];
tempKr=1+k1temp+k2temptemp+k3temptemptemp;
切向畸變計算:
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;
重復以上步驟n次(一般取20左右)
第四步:將攝像機坐標系再轉換到圖像坐標系
X_new[i]=X_new[i]*focal[0]+principal[0];
Y_new[i]=Y_new[i]*focal[1]+principal[1];
大功告成。仔細的小伙伴一定會提出疑問,怎么第三步在用X_new[i]計算X_new[i],bingo,在矯正前需要給X_new[i]賦初值為X[i]。
總結
- 上一篇: js判断时间是否在某一时间段内
- 下一篇: 将JPG图片直接转换成PDF软件操作步骤