fisheye calib视野调整
1. 畸变模型采用
K = np.array([[6.2597563231075685e+02, 0., 1.1601088601848592e+03],[0., 6.2525998102575511e+02, 1.1634786618991664e+03],[0., 0., 1.]])
2. 直接使用
initUndistortRectifyMap和remap时注意调节视野的大小,为了方便得到想要的大小需要借助
estimateNewCameraMatrixForUndistortRectify
参数
fov_scale=1.0时,调整后的新的内参如下:
[[1.02625557e+02 0.00000000e+00 1.16010886e+03], [0.00000000e+00 1.02508230e+02 1.16347352e+03], [0.00000000e+00 0.00000000e+00 1.00000000e+00]]
f/f_new=6.2597563231075685e+02/1.02625557e+02=6.0996076475449175881208615510852
fov_scale=0.5时,调整后的新的内参如下:
[[2.05251114e+02 0.00000000e+00 1.16121771e+03], [0.00000000e+00 2.05016460e+02 1.16794704e+03], [0.00000000e+00 0.00000000e+00 1.00000000e+00]]
fov_scale=0.2时,调整后的新的内参如下:
[[5.13127786e+02 0.00000000e+00 1.16454428e+03], [0.00000000e+00 5.12541149e+02 1.18136761e+03], [0.00000000e+00 0.00000000e+00 1.00000000e+00]]
3. 完整代码如下:
K = np.array([[6.2597563231075685e+02, 0., 1.1601088601848592e+03],[0., 6.2525998102575511e+02, 1.1634786618991664e+03],[0., 0., 1.]])D = np.array([[0.069],[-2.24e-03],[-0.01487],[3.78e-03]])img = cv2.imread("D:/ISP/FourFisheyeLensStitching/images/ENCMFUR/square.png")imgHeight, imgWidth, imgDeep = img.shape# new_K = cv2.fisheye.estimateNewCameraMatrixForUndistortRectify(K, D, (1280, 720), np.eye(3), balance=1)# map1, map2 = cv2.fisheye.initUndistortRectifyMap(K, D, np.eye(3), new_K, (1280, 720), cv2.CV_16SC2)# undistorted_img = cv2.remap(img, map1, map2, interpolation=cv2.INTER_CUBIC, borderMode=cv2.BORDER_CONSTANT)# new_K = cv2.fisheye.estimateNewCameraMatrixForUndistortRectify(K, D, (1280, 720), np.eye(3), balance=1,# new_size=(3400, 1912), fov_scale=1)# map1, map2 = cv2.fisheye.initUndistortRectifyMap(K, D, np.eye(3), new_K, (3400, 1912), cv2.CV_16SC2)# undistorted_img = cv2.remap(img, map1[575:1295, 23:3119, :], map2[575:1295, 23:3119],# interpolation=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT)new_K = cv2.fisheye.estimateNewCameraMatrixForUndistortRectify(K, D, (imgWidth, imgHeight), np.eye(3), balance=1.0,new_size=(imgWidth, imgHeight), fov_scale=1.0)map1, map2 = cv2.fisheye.initUndistortRectifyMap(K, D, np.eye(3), new_K, (imgWidth, imgHeight), cv2.CV_16SC2)undistorted_img = cv2.remap(img, map1, map2,interpolation=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT)cv2.imwrite('D:/ISP/FourFisheyeLensStitching/images/ENCMFUR/undistorted_square_balance_1.0_fov_scale_1.0.png', undistorted_img)
fisheye calib视野调整相关推荐
- 百度路书 设置autoView为true 无法准确自动视野调整
在官方文档 LuShu.js 中有些代码中 autoView: true, //是否开启自动视野调整,如果开启那么路书在运动过程中会根据视野自动调整 其实是随着有拐角处才会刷新 好多文献太老了还是,, ...
- 百度地图轨迹回放,自定义路书,边走边画线
转自:https://www.cnblogs.com/syj2016/p/5685294.html 百度地图轨迹回放,自定义路书,边走边画线 在原有的百度路书的基础上,做了修改,使其能实现边走边画线的 ...
- 高德地图markevents_GitHub - mingxuWang/Map: 高德地图API二次封装
Map组件设计文档 组件设计目的 分析当前各业务方向(销售端.商城.数据可视化.TMS)内地图相关应用的地图功能使用情况,封装Map组件供给各业务向进行使用. 将高德地图API进行二次封装,降低地图相 ...
- 基于光线追踪的Mental Ray鱼眼镜头的编程实现 作者:华文广
基于光线追踪的Mental Ray鱼眼镜头的编程实现 作者:华文广 ...
- 基于高德地图Windows Phone API 快速开发地图相关APP(二)
基础知识前面做过介绍 http://www.cnblogs.com/piaocz/archive/2012/08/14/2638097.html 下面说说 分层管理覆盖物的功能: 我们把不同的覆盖物 ...
- 百度地图同时显示多个路书
2019独角兽企业重金招聘Python工程师标准>>> <script type="text/javascript" src="http://ap ...
- baidumap vue 判断范围_百度地图 vue-baidu-map
//main.js import BaiduMap from 'common/components/vue-baidu-map' Vue.use(BaiduMap, { // ak 是在百度地图开发者 ...
- 此次边路调整系统推荐射手走哪路_王者荣耀地图重大对称改动,终于能射手对射手,上单对上单了...
兄弟萌,一直困扰大家的地图问题终于要改了,王者峡谷将在今年的周年庆版本,迎来一次玩法体验的大升级! 调整介绍 我们将尝试改造边路的地形&资源,促进更合理的同职业分路对线.以往通过职业.英雄的调 ...
- 构建测试的体系化思维(进阶篇)
读完需要 24 分钟 速读仅需 8 分钟 00 引言 1. 三个层次聊测试体系 测试人员缺乏体系化思维?新建产品团队或者新启项目,如何搭建质量保障体系? 大家都接触过不计其数的测试.质量方面的文章或者 ...
- unity 学习记录
世界第九条约定 缘起 嗯,其实一开始我知道unity是个弄游戏的,也知道好像神庙逃亡,炉石都是出自unity,然后舍友都报了,我也觉得这个东西挺高大上的,所以忍不住自己的双手,报了名,确实,这能学到很 ...
最新文章
- 谷歌又有手机黑科技:进入办公室就变静音,遇车祸自动报警
- python下载文件到指定文件夹-python实现指定文件夹下的指定文件移动到指定位置...
- linux动态分配全局置换,深入理解计算机系统 第九章 虚拟存储器
- python开源爬虫项目违法吗_Python开源爬虫项目代码:抓取淘宝、京东、QQ、知网数据...
- [ASP.NET MVC2 系列] ASP.NET MVC 之如何创建自定义路由约束
- mavros 基于体轴坐标系下的无人机行人跟踪
- this--学习笔记
- jQuery Mobile中按钮button的data-*选项
- Unity中利用反射自动读取Excel配置
- Shell脚本里的双冒号是什么意思
- Axure 8图标样式库
- 机器学习笔记17-LDA算法
- linux火狐快捷键设置,使用火狐浏览器所有的快捷键大全
- iOS 开发 Provisioning Profile(描述文件) 详解
- 笔记本BIOS能检测到固态,进入系统后磁盘管理不显示固态硬盘
- linux系统下 blast,Linux下BLAST安装及BLAST使用
- Print a rhombus (C++)
- 基于51单片机的电子时钟设计
- 3Dmax 常用-概念理解
- 关于【商品计量单位以及这些计量单位换算】的设计