基于双经度模型的鱼眼图像畸变校正

文章目录

    • 1. 简介
    • 2. 基本原理
      • 基本思路
      • 从目标图到半球面模型的投影
      • 从半球面模型到鱼眼图像的投影
        • 正交投影
        • 等距投影
    • 3.实际效果示例
      • 论文中的原图去畸变
    • 4. 有意思的玩法
      • 5. 对生成的鱼眼图去畸变

1. 简介

算法来自论文《基于双经度模型的鱼眼图像畸变矫正方法》

2. 基本原理

在这里插入图片描述

基本思路

去畸变需要建立一个投影链路,这里是从目标图(最终要得到的去畸变的图)到半球面模型的投影,再从半球面模型到鱼眼图投影。目标图的ij坐标转换为半球面模型上的经度值(类比地球经纬度描述表面位置),半球面模型到鱼眼图的投影有多种方式,这里采用的正交投影和等距投影。目标图到半球面再到鱼眼图上都是一一对应的。

从目标图到半球面模型的投影

α \alpha α为y方向的经度值, β \beta β为x方向的经度值,经度值范围 [ 0 , π ] [0,\pi] [0,π]
下面的公式5 6就建立了从目标图到半球面的坐标的一一对应关系
在这里插入图片描述

在这里插入图片描述
注意:这里的公式有点问题,z一定是正数,但是x,y却不一定,忽略x,y的符号会导致最终得到一个只有一个象限的图,看起来像是一朵四片重复的花瓣的花。

从半球面模型到鱼眼图像的投影

正交投影

下面的公式20 21建立了从半球面到鱼眼图的一一对应关系。
在这里插入图片描述

等距投影

下面的公式28 29建立了从半球面到鱼眼图的一一对应关系。
在这里插入图片描述

3.实际效果示例

论文中的原图去畸变

在这里插入图片描述
下面左边是最近邻插值的效果,右侧为双线性插值的结果
在这里插入图片描述

4. 有意思的玩法

正常去畸变的链路是从目标图—>半球面—>鱼眼图,这样可以去畸变,那链路反过来呢?那不是就可以制造鱼眼图的效果了吗!yes,是的。那后面验证效果可以用生成的鱼眼图来做去畸变。(目前有的数据不能发,所以才有了这个自己造鱼眼图的想法!)
左边为原图,右侧为生成的鱼眼图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5. 对生成的鱼眼图去畸变

左侧为输入图,右侧为去畸变的图。从效果来看对生成的鱼眼图去畸变效果非常好,这也就说明了在去畸变的时候,建立和真实的投影模型一致的模型是多么重要,用简单的模型来模拟真实的物理世界,还是很有意思,但是怎么去近似这个真实的物理过程真是件需要创造力的事情。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

算法也还算是很简单,初版一天完成,后面稍微修改了一点,总的代码量300-400行左右。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/689170.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘LLMOps,高效开发大型语言模型

大家好,随着人工智能(AI)的蓬勃发展,一个新兴领域语言模型运维(LLMOps)正逐渐成为关注的焦点。LLMOps专注于对大型语言模型(LLMs),例如OpenAI的GPT系列,进行全…

uni-app 多列picker切换列显示对应内容

html部分&#xff1a; <view class"uni-list"><view class"uni-list-cell"><view class"uni-list-cell-left">选择用户</view><view class"uni-list-cell-db"><picker mode"multiSelector"…

Day 44 完全背包理论基础 518. 零钱兑换 II 377. 组合总和 Ⅳ

完全背包理论基础 ​ 完全背包和0-1背包的最大区别在于完全背包里的每个物品的数量都是无限个&#xff0c;而0-1背包每个物品只有一个&#xff1b; 内嵌循环遍历顺序 ​ 回顾一维数组0-1背包的遍历递推公式&#xff1a; for (int i 0&#xff1b; i < weight.size(); i)…

软件工程经济学--期末复习资料

软件工程经济学--期末复习资料 前言第一章 绪论第二章 软件工程经济学基础第三章 软件的成本管理与定价分析第四章 软件工程项目评价方法与经济效果评价第五章 软件生产函数、效益分析及不确定性分析第六章 软件工程项目进度计划的制定结尾总结 前言 软件工程经济学&#xff0…

CSS-伪类选择器

结构伪类选择器 作用&#xff1a;根据元素的结构关系查找元素 分类&#xff1a; 选择器说明元素名:first-child查找第一个元素元素名:last-child查找最后一个元素元素名:nth-child(N)查找第N名元素 <!DOCTYPE html> <html lang"en"> <head><me…

机柜风扇KTS011温湿度控制器KTO011风机控制温控器机械开关温控仪

品牌&#xff1a;威驰 型号&#xff1a;KTS011常开 产地&#xff1a;中国大陆 颜色分类&#xff1a;KTS011常开,KTO011常闭 KTS011与KTO011的区别 KTS011&#xff0c;常开型&#xff0c;可搭配风扇/风机使用&#xff1a;当环境温度超过温控器设定温度&#xff0c;温控…

2024高校网络安全管理运维赛wp

文章目录 misc签到钓鱼邮件识别easyshellSecretDBGatewayzipApachef for r webphpsqlMessy Mongo misc 签到 钓鱼邮件识别 两部分解base64&#xff0c;各一个flag 后面没有什么地方有有用信息了&#xff0c;根据题目钓鱼邮件&#xff0c;可能第三段flag就跟DMARC、DKIM 和 SP…

出海企业哪种组网方案更省事?

对于出海企业而言&#xff0c;建立跨地区的数据传输和协同工作至关重要&#xff0c;以提升运营效率。因此&#xff0c;网络构建变得迫在眉睫。通过构建企业组网&#xff0c;企业能够加强与海外分支、客户和合作伙伴之间的联系&#xff0c;加速海外业务的发展。 然而&#xff0c…

【C语言】—— 动态内存管理

【C语言】——动态内存管理 一、动态内存管理概述1.1、动态内存的概念1.2、动态内存的必要性 二、 m a l l o c malloc malloc 函数2.1、函数介绍2.2、应用举例 三、 c a l l o c calloc calloc 函数四、 f r e e free free 函数4.1、函数介绍4.2、应用举例 五、 r e a l l o …

postgresql中写python去读取HDFS数据,像表一样使用。

简介 首先postgresql是支持python的&#xff0c;在安装postgresql数据库的时候需要执行python支持。可以使用python进行写fundcation 自然也就可以自定义funcation去读取HDFS文件&#xff0c;以此替换掉hive的&#xff0c;省去中间频繁切换服务器的麻烦。 安装postgresql use…

XMind 2021 v11.1.2软件安装教程(附软件下载地址)

软件简介&#xff1a; 软件【下载地址】获取方式见文末。注&#xff1a;推荐使用&#xff0c;更贴合此安装方法&#xff01; XMind 2021 v11.1.2被誉为顶尖思维导图工具&#xff0c;以其简洁、整洁的界面和直观的功能布局脱颖而出。尽管软件体积小巧&#xff0c;却极具强大功…

OpenCV 入门(六) —— Android 下的人脸识别

OpenCV 入门系列&#xff1a; OpenCV 入门&#xff08;一&#xff09;—— OpenCV 基础 OpenCV 入门&#xff08;二&#xff09;—— 车牌定位 OpenCV 入门&#xff08;三&#xff09;—— 车牌筛选 OpenCV 入门&#xff08;四&#xff09;—— 车牌号识别 OpenCV 入门&#xf…