opencv和halcon标定参数结果对比

 在Stake Overflow里面有人讨论过这个问题,当我们用Opencv和halcon一起编程序的时候,需要考虑两者参数的不同,现在碰到的问题就是,我在已经知道内参矩阵的前提之下,想要求出外参矩阵,而内参是用halcon求出来的,vs中想用opencv写标定外参的程序,两者的参数表达方式不一样。

 c++ - HALCON to OpenCV Distortion Coefficients Convertion - Stack Overflow

 在HALCON中有两种标定方式

首先是面扫描(多项式)

 opencv和halcon标定参数结果对比_第1张图片

 还有就是面扫描(除法)

 opencv和halcon标定参数结果对比_第2张图片

除法式校正: 

U = u / (1 + Kappa*(u*u + v*v))

V = v/(1+ Kappa*(u*u + v*v))

 多项式矫正:

U = u + u*(K1*r*r + K2*r*r*r*r + K3*r*r*r*r*r*r)+ 2*P1*u*v + P2*(r*r + 2*u*u)

V = v + v*(K1*r*r + K2*r*r*r*r + K3*r*r*r*r*r*r)+ P1*(r*r + 2*v*v)+ 2*P2*u*v

下面是Opencv标定出来的结果:

opencv和halcon标定参数结果对比_第3张图片 

 再看opecnv的标定文档里面所描述的

opencv和halcon标定参数结果对比_第4张图片

 看来opencv标定畸变系数对应的是HALCON的多项式

但是它的畸变系数顺序是:k1,k2,p1,p2,k3

opencv和halcon标定参数结果对比_第5张图片

 

还要注意的有,一些畸变消去算法用的是除法

 这里面需要注意的挺多的

你可能感兴趣的:(机器视觉,opencv)