cv::Mat img;
cv::Mat img_undistort;
double fx,fy, cx, cy, k1, k2, p1, p2, k3;for(int v = 0; v < img.rows; v++){for(int u = 0; u < img.cols; u++){//根据内参数,计算归一化坐标系下的坐标点double x = (u-cx)/fx;double y = (v-cy)/fy;double r2 = x*x + y*y;//添加畸变double x_distort = x*(1+k1*r2 + k2*r2*r2 + k3*r2*r2*r2) + 2*p1*x*y + p2*(r2+2*x*x);double y_distort = y*(1+k1*r2 + k2*r2*r2 + k3*r2*r2*r2) + p1*(r2+2*y*y)+2*p2*x*y;//转换到像素平面下double u_distort = x_distort*fx + cx;double v_distort = y_distort*fy + cy;// 到目前为止,已经得到了畸变前后点的对应位置了,那就把畸变后图像上的点//投影到去畸变的位置。if(u_distort > 0  && u_distort < img.cols && v_distort >0 && v_distort < img.rows){img_undistort.at<uchar>(v, u) = img.at<uchar>((int)v_distort, (int)u_distort);}else{img_undistort.at<uchar>(v,u) = 0;
}
}
}

根据相机内参进行图像去畸变相关推荐

  1. OpenCV 【十一】—— 图像去畸变,对极约束之undistort,initUndistortRectifyMap,undistort

    目录 0.极限约束,对极校正 1.摄像机成像原理简述 2.成像畸变 2.1. 畸变数学模型 2.2. 公式推导 3.畸变校正 3.1. 理论推导 4. 图像去畸变** 5. 图像尺度缩放与内参的关系* ...

  2. 图像去畸变矫正及双线性内插法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 通过采集的图像我们可以得到畸变后的图像,要得到没有畸变的图像要通过畸变模型推导其映射关系. 真实图像 ...

  3. 超实用!图像去畸变矫正及双线性内插法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 通过采集的图像我们可以得到畸变后的图像,要得到没有畸变的图像要通过畸变模型推导其映射关系. 真实图像 ...

  4. 图像去畸变和添加畸变

    背景:最近的项目中用到的图像去畸变的知识,刚开始是直接调用opencv中提供的函数cv::initUndistortRectifyMap()和cv::remap()函数,实现图像的全局去畸变,但是由于 ...

  5. 计算机视觉:Opencv图像去畸变

    计算机视觉:Opencv图像去畸变 针孔相机模型图像去畸变 方法一 方法二 区别与联系 鱼眼相机模型图像去畸变 方法一 方法二 区别与联系 参考文献 针孔相机模型图像去畸变 针对畸变参数,k1,k2, ...

  6. opencv图像去畸变

    图像去畸变的思路 对于目标图像(无畸变图像)上的每个像素点,转换到normalize平面,再进行畸变变换,进行投影,得到这个像素点畸变后的位置,然后将这个位置的源图像(畸变图像)的像素值作为目标图像该 ...

  7. 使用OpenCV给图像去畸变

    相机畸变模型 我们计算畸变都是在归一化平面上进行的,下面的(x,y), (x_distort,y_distort)都是在归一化坐标,相机坐标(X,Y,Z)的归一化坐标(X/Z, Y/Z, 1) 1.径 ...

  8. python opencv实践 图像去畸变

    目录 前言 镜头成像畸变原因 去畸变方法 python去畸变 输入 代码 结果 前言 由于相机的镜头并不完全理想,成像时会产生线条扭曲.失真等.对双目图像.鸟瞰图等进行处理时,首先要矫正去畸变. 镜头 ...

  9. 多摄像机标定和去畸变

    Table of Contents 1.kalibr多摄像机标定 1.1 系统安装,环境配置:实测Ubuntu 16.04 1.2 多摄像机标定 2.OpenCV双目标定 3.Matlab多摄像机标定 ...

最新文章

  1. 多窗体应用中的注意点
  2. 【开篇】自我介绍和博客未来规划
  3. MAX Script 脚本语言
  4. vs2017 linux so导出函数,将Visual Studio 2017中的Assembly和C ++与命令行和输出相结合
  5. MySQL—修改数据库root用户密码
  6. php代码静态分析工具,Wpbullet:一款针对WordPress(PHP)的静态代码分析工具
  7. 第二次扩大会议(3.19)
  8. Android Studio 开发JNI应用
  9. StanfordDB class自学笔记 (8) Querying XML
  10. multisim 10 基本分析法的应用1
  11. 百度旋转验证码打码模块,集成鱼刺模块类
  12. Laravel快速创建统计图表
  13. 什么是第三方Cookie?别等生意都丢了,才去了解
  14. Kraljic采购定位模型
  15. 关于百度地图设置显示的比例尺大小
  16. 盘点:2022年国内31省市数字经济发展相关政策、目标
  17. linux怎么在终端里查系统信息,Neofetch:在终端中显示Linux系统信息
  18. 【SpringBoot】最新版2019Spring Boot配置解析,源码解析(速成SpringBoot)——学习笔记版【2】
  19. 基于新代数控系统PLC基础语法汇总
  20. 电子杂志缺乏用户粘性 资本纷纷撤离战场

热门文章

  1. appium--每次启动会重新安装的问题(没试过)
  2. 2017.10.23解题报告
  3. Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】
  4. SpringMvc中ModelAndView模型的应用
  5. 批量创建10个系统帐号tianda01-tianda10并设置密码
  6. 微信头像单张图片上传
  7. C#的async和await
  8. node.js-------使用路由模块
  9. Linux Tomcat 6.0安装配置实践总结
  10. [原]第一次遭遇Oracle的Bug,纪念一下 |ORA-00600 kmgs_pre_process_request_6|