halcon相机标定参数转为opencv参数形式

本文介绍了一种将Halcon相机标定得到的畸变系数转换为OpenCV格式的方法,通过具体数学公式展示了如何调整参数以适应OpenCV的畸变矫正算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于条件限制拿到了halcon标定相机的参数,但由于自己畸变矫正采用opencv形式,但halcon官网给出5畸变系数到opencv不可转换。实际转换公式为:

void calibParaL (Mat &cameraMatrix, Mat &distCoeffs)
{
    double F = 6.2254672188473579e-03;
    double sx = 4.7992918037134185e-06;
    double sy = 4.7999999999999998e-06;
    double k1h = 5.7491650585212965e+03;      //k1k2k3p1p2
    double k2h = - 2.7796396962651394e+07;
    double k3h = - 1.4920594731728228e+12;
    double p1h = 5.6153778906380375e-02;
    double p2h = - 9.1599064524437290e-03;   //p2

    cameraMatrix = Mat::eye(3, 3, CV_64F);
    cameraMatrix.at<double>(0, 0) = F / sx;
    cameraMatrix.at<double>(0, 1) = 0.0;
    cameraMatrix.at<double>(0, 2) = 6.402223194383531e+02;
    cameraMatrix.at<double>(1, 1) = F  / sy;
    cameraMatrix.at<double>(1, 2) = 5.076691017558288e+02;

    distCoeffs = Mat::zeros(5, 1, CV_64F);
    distCoeffs.at<double>(0, 0) = -k1h*F*F ;
    distCoeffs.at<double>(1, 0) = k2h*F*F*F*F;
    distCoeffs.at<double>(2, 0) = p2h*F;
    distCoeffs.at<double>(3, 0) = p1h*F;
    distCoeffs.at<double>(4, 0) = k3h*F*F*F*F*F*F;
}

本公式参考

https://stackoverflow.com/questions/58606394/halcon-to-opencv-distortion-coefficients-convertion

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值