3月底接到合作方S发过来的他拍的产品图像, 让我用畸变校正程序帮他校正一下,并把效果图发给他,说效果可以的话可以进行合作。

我接到需求后,先打开S发过来的图像,一看就是用鱼眼镜头所拍摄的图像,视角应该是180度左右。后来经过电话和S核实, 镜头的焦距是2.8mm ,鱼眼视角是180度。

原始的图像用2..8mm焦距的鱼眼镜头采集,存在很严重的畸变,如上图所示。注意看图像四周,角落本来正常的物品已严重变形。畸变的过程如下图所示。

S的案例就是一个桶型畸变,桶型畸变的图像有一个明显的特征:越靠近中心,图像的分辨率就越高,有效信息密度就越低;反之离中心越远,图像的分辨率就越低,有效信息密度就越大。所以鱼眼照片四周的图像经过矫正处理之后,还原出来效果相对于中心区域的图像效果就要差一些。

S有一套AI程序可以识别物品的位置, 但鱼眼摄像头的畸变导致AI识别程序无法识别原始视频中物品的位置,所以需要利用我的算法对镜头所采集的图像进行校正处理之后再吐给AI识别程序。 图像的畸变校正过程就是畸变的逆过程,流程如图所示。

我打开了fisheyedemo点此直达资源, 按照经验找到主点和半径, 设置目标输出分辨率为400*400, 重启程序。 程序打开后,得到了90度视角的矫正位图,发给客户,S看了之后对效果挺满意。见图1所示(由于S要求保密,对细节进行了mosaic处理)。

S看到局部的效果之后,希望我用更大的视角把全部图像进行“展开”并提供高分辨率的图像。 由于之前的鱼眼浏览程序无法得到客户希望看到的样子,必须对代码进行修改。经过对代码进行研究,我发现是由于代码中写死了观测角度,于是我把观测角度设置成150°,然后重新生成了全局校正的图像。以下是前后效果对比。

S看过之后对后处理效果满意,同时提出了新的问题,要求算法能实时处理视频且帧率不低于24fps。笔者于是在Debug模式下加上了时间打印,得出处理一帧的图像大概耗时46ms左右,从而保证了该算法满足了实时性的要求。以下是每一帧耗时的情况。

相关文献:     鱼眼图像畸变校正算法演示程序,可二开_鱼眼畸变校正算法-图像处理文档类资源-CSDN下载

鱼眼畸变矫正-S样板图处理小记相关推荐

  1. 项目讲解-AVM 3D 全景泊车-畸变矫正(1)

    1. 简介 这里对嵌入式部分的代码就不进行大量说明,主要对软件和算法部分进行讲解. 因为之前做完项目整理成了 doc 文档,这里直接复制过来,格式不太整齐,请谅解 这一篇只讲解一下畸变矫正,后面的历程 ...

  2. VS2019+OpenCV4.5 鱼眼相机图像畸变矫正

    一.鱼眼相机概述 鱼眼镜头是定焦镜头中的一种视野范围很大的镜头,它视角范围通常大于等于180度.鱼眼相机虽然能获得较大的视角范围,但是其拍摄的图像存在较大的畸变,为了后续任务的需要,往往需要对原始图像 ...

  3. 一文讲透鱼眼相机畸变矫正,及目标检测项目应用

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 个人介绍 大家好,我是潘大强. 目前博士毕业4年,主要从事智能安防行业. 之前也分享过AI从业的一 ...

  4. 鱼眼摄像头的畸变矫正方法-python+opencv

    鱼眼摄像头畸变校正的方法: 1. 棋盘矫正法 2. 经纬度矫正法. 相机为什么会出现畸变? 当前相机的畸变主要分为径向畸变和切向畸变两种. 径向畸变产生的原因:相机的光学镜头厚度不均匀,离镜头越远场景 ...

  5. 【CV】鱼眼相机模型与畸变矫正(Fisheye Camera Model Calibration)

    文章目录 鱼眼镜头 鱼眼名称的由来 鱼眼镜头的实现 鱼眼相机的成像模型 鱼眼图像的矫正 Ref 鱼眼镜头 鱼眼镜头长这样 #鱼眼镜头成像样张 拍出来的照片长这样 鱼眼名称的由来 之所以叫鱼眼,是因为仿 ...

  6. 机器视觉-相机标定及畸变矫正

    摘要:本文首先介绍了针孔相机模型(线性模型),然后推导四个坐标轴变换的关系,引出R.T.K.D中包含相机的5个内参,6个外参.然后介绍相机畸变的原因以及畸变模型(非线性模型),引出相机的5个畸变参数. ...

  7. Halcon :畸变矫正与标定(2)

    相机标定 1.相机标定是什么 2.怎么使用halcon进行相机内外参标定? (1)搭建硬件 1.**相机连好电脑,用相机厂家软件打开相机,检查一下相机是否正常.** 2.**接下来使用halcon连接 ...

  8. Halcon: 畸变矫正与标定(1)

    1. Halcon相机标定和图像矫正     对于相机采集的图片,会由于相机本身和透镜的影响产生形变,通常需要对相机进行标定,获取相机的内参或内外参,然后矫正其畸变.相机畸变主要分为径向畸变和切向畸变 ...

  9. 五、畸变矫正—让世界不在扭曲

    五.畸变矫正-让世界不在扭曲 这篇博文所要讲述的内容,是标定的主要用途之一:矫正摄像机的畸变.对于图像畸变矫正的方法,张正友教授也在其大作"A Flexible New Technique ...

最新文章

  1. 他在京东每天做1000万图灵测试
  2. android 组件不可见,Android setVisibility(View.VISIBLE)不显示该组件
  3. 引入N-gram改进Transformer架构,ACL匿名论文超越Primer等基准
  4. Android 自定义 ListView 显示网络上 JSON 格式歌曲列表
  5. bootstraptable不显示数据_单片机显示原理
  6. Windows server 2012 系统安装 密钥
  7. kafka 精准一次性
  8. 如何获取qq空间图片的url
  9. word表格分开快捷键_word文档如何快速拆分表格,干货!怎样快速拆分表格以及快速合并表格技巧介绍...
  10. 愤怒的小鸟游戏开发教程(持续更新)
  11. 网站DDOS攻击防护实战老男孩经验心得分享 【转】
  12. 一篇文章详细介绍什么是回调地狱
  13. OpenCV图形处理
  14. 用友数据库表名参照表
  15. 01马氏链及其平稳分布
  16. 软件及操作系统的基础
  17. pytorch遇到Error loading “C:\Anaconda3\lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll“
  18. H5无插件实现实时海康、大华摄像头网页预览
  19. c语言中 在对全部数组元素赋初值时,在对数组全部元素赋初值时,不可以省略行数,但能省略列数...
  20. PHP 微信公众号真正正确的客服头像上传

热门文章

  1. 曲普瑞林市场分析:2022年曲普瑞林市场远未被打开
  2. 爬虫利器 xpath 实践案例
  3. 如何进阶TypeScript功底?一文带你理解TS中各种高级语法
  4. 商朝·商高·勾三股四玄五·勾股定理
  5. stata自变量滞后
  6. cfos加速器安装及使用
  7. 0021 arduino iic i2c 实例讲解 TWI是什么 arduino 的 iic 库 i2c库 arduino Wire 库
  8. 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。
  9. subprocess.Popen()的用法
  10. BIUT Blockchain Explorer功能介绍