广角镜头的标定、畸变校正和基于ROS的实时视频输出

news/2024/11/25 23:35:48/

摘自:https://blog.csdn.net/abc039510/article/details/88421490?utm_medium=distribute.pc_relevant_t0.none-task-blog-OPENSEARCH-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-OPENSEARCH-1.control

广角镜头的标定、畸变校正和基于ROS的实时视频输出

whu-hk 2019-03-12 15:19:47 1542 收藏 9

分类专栏: 相机标定 ROS包 文章标签: 广角镜头 ROS启动包 标定与畸变校正 鱼眼模型

版权

参考网址:
1.棋盘格标定 https://blog.csdn.net/u011475210/article/details/79185543
2.镜头参数调整 https://blog.csdn.net/akay1997/article/details/76421757/
3.实时畸变校正 https://blog.csdn.net/lcydhr/article/details/72726396

一.标定

鱼眼相机成像模型不同于普通镜头的针孔成型模型。 广角镜头介乎于普通镜头与鱼眼镜头之间,畸变程度也介乎两者之间。 本人采用3.6mm、全视角范围90°的一款广角镜头,之前采用普通镜头的标定方法效果不是很理想,转向OpenCV3版本引入的fisheye模型:
cv::fisheye model
内参矩阵、坐标轴倾斜系数skew等属性与普通镜头相同,不同的是畸变系数。畸变主要分径向与切向两种,径向畸变发生在相机坐标系转图像物理坐标系的过程中。而切向畸变是发生在相机制作过程,其是由于感光元平面跟透镜不平行。
普通镜头的畸变参数:k1,k2,k3——径向畸变系数,p1,p2——切向畸变系数。
鱼眼镜头的畸变系数:k1,k2,k3,k4

标定程序源码参考Visual Studio工程github代码地址

二.畸变校正

cv::fisheye提供两种畸变校正方法:
(1) initUndistortRectifyMap + Remap;
(2) undistortImage
API具体信息参考OpenCV官网,需要说明的是第二种其实是第一种方法的组合,但在具体应用方面需要注意的是,第一种initUndistortRectifyMap计算原图与畸变校正图之间的变换即map1和map2,这两个参数可以只计算一次作为全局变量,只要镜头的分辨率等信息不改变,后续进行Remap操作即可,而第二种方式多应用于单张图片的畸变校正,用于视频流的畸变校正则大大影响实时效率,因为每一帧图像都重新计算了map1与map2。

三.基于ROS的多分辨率视频输出

本文采用的镜头支持多种分辨率,主要为640x480/1280x720/1920x1080三种。16:9的宽高比容易获得较宽的视野,但需要改变视频流的编码方式,改为‘mjpg’格式,4:3则视野较窄,‘yuyv’格式编码即可。通过将分辨率的宽和高分别作为参数写入ROS的launch文件中,实现多分辨率的不同roslaunch启动方式。
ROS包github地址:https://github.com/whu-hk/usb_cam_opencv
不同分辨率下镜头内参、畸变系数定义在/include/usb_cam_opencv/usb_cam_opencv.h中,根据自己镜头的参数调整。


http://www.ppmy.cn/news/478731.html

相关文章

广角相机app哪个比较好用_专业广角镜头相机app下载

专业广角镜头相机手机版能够实现广角拍摄效果,为你带来最佳的拍摄体验,拥有不错的摄像与拍照服务,提供最方便的图像拼接服务,更有避免阳光的拍摄模式,让你拍摄出最佳视觉效果的图片! 专业广角镜头相机介绍 还在为镜头不行,不能拍全景相片而烦恼吗?还是羡慕专业相机拍出的…

Android 尝试适配广角镜头的方案

广角镜头适配 基于Camera2 API, 获取设备相机信息, 判断相机是否广角 //获取镜头数量, 略//通过物理尺寸, 对焦距离, 算出FOV(Field of view), 相机水平弧度, 垂直弧度 val size characteristics.get(CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE) val focalLens1 char…

开发日记-凌鲨中数据库代理的实现

凌鲨定位于连接研发过程中一切信息和工具。下面是数据库代理的大概框架: 技术选型 使用golang开发各种数据库协议代理,redis-proxy,mysql-proxy,mongo-proxy使用swagger提供代理协议的调试 选型原因 我们的客户端使用了tauri作为框架,在实现扩展功能的…

华为手机双击确认怎么取消_华为双击屏幕放大怎么取消

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。 以华为Nova5为例,取消双击屏幕放大的方法: 1、首先进入华为nova5手机桌面,点击设置。 2、然后点击智能辅助。 3、点击无障碍。 4、点击放大手势&…

鸿蒙手机版推送时间表,华为鸿蒙2.0手机版推送时间基本定档

华为已经在9月的时候发布了华为鸿蒙2.0系统,而且华为官方表示华为鸿蒙2.0系统将支持智能手机,可以升级更新到EMUI11系统的华为智能手机后续将可以升级更新到华为鸿蒙2.0系统 之前已经有23款华为荣耀手机开启EMUI11系统内测公测升级,现在华为E…

华为手机怎么装鸿蒙,华为鸿蒙系统支持哪些手机 可以装华为鸿蒙系统手机

华为鸿蒙系统支持哪些手机?9 月 10 日在华为 2020 开发者大会上,鸿蒙 OS 2.0 系统正式亮相,2020 年 12 月将发布手机 Beta 版本,明年华为智能手机将全面升级支持鸿蒙 2.0。那么华为鸿蒙系统支持哪些手机呢?下面就让小编给大家介绍一下。 一…

华为android9.1.0怎么隐藏应用,华为手机怎么隐藏app

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。 以华为P30pro为例,隐藏app的方法是: 1、双指捏合放在华为p30pro手机屏幕上,然后双指往外推。 2、弹出方框后,点击里面的加号。 3、然…

华为今年发布鸿蒙系统支持手环,华为鸿蒙系统2.0正式发布,明年将运用在手机上...

ZAKER 科技 9 月 10 日讯 今日华为在东莞松山湖举行华为开发者大会 2020,华为消费者业务 CEO 余承东进行了开幕演讲。 余承东表示,华为 18N 全场景业务快速增长,今年二季度华为智能手机和腕上可穿戴设备均在成为全球、国内第一,智…