opencv实现图像去畸变——几种实现方式(含完整代码)&&效果对比图&&详细参数说明&&核心参数变化对应变化效果图&&常见问题

本文介绍了OpenCV中用于摄像机畸变校正的函数,包括cv::fisheye::initUndistortRectifyMap适用于鱼眼相机,cv::initUndistortRectifyMap适用于普通相机,以及opencv_contrib扩展库中的cv::omnidir::initUndistortRectifyMap。详细阐述了相关参数和代码实现,并展示了不同方法的效果。
该文章已生成可运行项目,

以下介绍下opencv实现图像去畸变的几种方式以及详细参数说明,含项目案例,含扩展的相关知识

cv::fisheye::initUndistortRectifyMap 和cv::initUndistortRectifyMap 都是 OpenCV 库中的函数,用于摄像机的畸变校正和图像的矫正。二者的区别在于,cv::fisheye::initUndistortRectifyMap 适用于鱼眼相机的畸变校正和图像矫正,而 cv::initUndistortRectifyMap 适用于普通相机的畸变校正和图像矫正。

具体来说,cv::fisheye::initUndistortRectifyMap 函数可以用于鱼眼相机的畸变校正和图像矫正,它的参数包括输入图像的大小、相机内参矩阵、畸变系数、旋转矩阵和投影矩阵等。函数的返回值是两个映射矩阵,可以用于后续的图像矫正操作。

而 cv::initUndistortRectifyMap 函数则可以用于普通相机的畸变校正和图像矫正,它的参数包括输入图像的大小、相机内参矩阵、畸变系数、旋转矩阵和投影矩阵等。函数的返回值同样是两个映射矩阵,可以用于后续的图像矫正操作。

需要注意的是,cv::fisheye::initUndistortRectifyMap 函数适用于鱼眼相机的畸变校正和图像矫正,但是它的运行速度相对较慢,因此在实际应用中需要根据具体情况选择合适的函数。cv::fisheye::initUndistortRectifyMap效果如下图:

去畸变前:

去畸变后:

另外,介绍一个效果比较好的扩展库:opencv_contrib。提供 cv::omnidir::initUndistortRectifyMap接口实现去畸变效果,如下图:

去畸变前:

去畸变后:

以下则以方案 ③为例更为详细的说明一下:

  • 具体参数(以下示例参数是1920*1080分辨率的)
{
    "distcoeff":{
        "distortMatrix":[
            1.1445103126389398,
            -1.5381069838860892,
            -0.0002758264626124696,
            0.0005343518274311642,
            0
        ]
    },
    "extrinsic":{
        "rotation":{
            "w":-0.4503108282902849,
            "x":0.54120891939059612,
            "y":-0.531561574479537,
            "z":0.47090907406145438
        },
        "translation":{
            "x":4.6313664462542317,
            "y":0.016680599912867258,
            "z":0.85922674428639156
        }
    },
    "intrinsic":{

        // 以下"matrix"(相机内参需要根据分辨率的不同动态变化, 需要重新计算或者对鱼眼相机重新标定)
        "height":1080,
        "matrix":[
            1559.081393096325,
            -0.05575693563188319,
            964.2708291230333,
            0,
            1557.3809973911518,
            519.5834214435208,
            0,
            0,
       &n
本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ปรัชญา แค้วคำมูล

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值