图像坐标球面投影_图像の球面投影算法
本文转载至http://ms.csdn.net/share/8C5E2CDC87DCF73D4291595BD94A9642_1_IPHONE_APP.
关于图像的球面投影,是全景应用中比较常见的技术,而现有的一些资源大多写的不太好,比较晦涩。在经过一段时间的摸索之后,发现了这个博客写的相对可以,本文的实现也将其作为重要的参考,如果看过本文之后有什么不明白或者觉得不好的地方可以去看看。
在展开本文之前,先来看看下面的两张图片:
左边的图像被投影到球面上后,其正视图为右边的图像。而我们要研究的是,如何去投影的过程。
可以想象,左边的图像是一张极薄的纱,将其蒙到一个大小正好的球面上(薄纱过中点的横轴正好覆盖球赤道的半周),然后正看过去会怎么样。我们将看到一个接近于上面右边图像的图像。为什么说接近而不说相同呢,因为大小是不一样的。左边图像的赤道如果刚刚好覆盖掉球的半个平面,则球的周长将为左边图像的宽度的两倍。假定左边图像的宽度为W,而球的半径为R,则有
πR=W
所以球的正视图的球直径应该为
2R=2*W/π
即球的正视图不会触碰到图像边缘,而为了我们看起来舒服一点,我们希望球的正视图刚刚好就触碰到图像边缘,是故球做完投影之后其正视图需要做一个等比例的放大,该放大系数为π/2。经过放大,我们就得到了右边的图像。之后,我们把放大系数设为k。
下面我们正式进入图像投影的研究,还是遵循上面的设想,把左边图像设想成一张极薄的纱,然后将其蒙到一个大小正好的球面上。那么,左边图像的中点将是右边图像的中点,也就是球正面顶点的位置。
接着,我们将图像的中心点记为点0,然后在左图像上随便取一个点即为点A,假设点A是落在过中点的横轴上的,很容易想象经过投影后A也将落在右图过中心点的赤道上。进一步想,左图绕中心旋转一个角度之后,原来不在过中点的横轴上的点可能变为其上的点,相应的该点的投影也会落在右图过中心点的赤道上。也就是说,图像上的任意一点经过投影之后,将落在原图与中心点连线的线上。接着我们沿着连线切下将得到下面的切面:
这便是这篇文章推导的关键,其中最为关键的是弧长等于OA*k这句话(由上面的薄纱模型很容易得出该弧为左图中的OA经过弯曲而来,长度自然相同,而*k是因为图像经过了放大),有了上面这些条件,我们可以列出以下这些公式:
推导到最后我们可以看到原图像坐标(X,Y)和投影后图像坐标(X',Y')的换算关系,其跟上面提到的博客最大不同的地方是将X,Y写在左边而X',Y'写在右边。在本人看来,这样才是合理的,因为后面我们需要去原图像找到对应的像素点取像素值,而映射后图像遍历时坐标是知道的,应该为已知条件。详细的可参考我之前写过的 C/C++ BMP(24位真彩色)图像处理(3)------图像の放大缩小(双线性插值)。
OK,到这里推导过程就全部结束了,按照上面的公式便可完成图像的映射。经过本人的测试,如果每次直接这样算效率是比较低的,所以后来本人改由查表法来完成上面的工作,这份工程和可执行程序都已经打包在一起上传了(由于是X64编译的,需要电脑是64位操作系统才可以运行,如果是32位的则可通过修改工程解决,工程利用OpenCV进行解码,需要自行配置,否则无法运行),如果有兴趣的可以去下载。
图像坐标球面投影_图像の球面投影算法相关推荐
- 图像修复 图像补全_图像修复简介
图像修复 图像补全 In practical applications, images are often corroded by noise. These noises are dust or wa ...
- matlab 通过矩阵变换使图像旋转平移_图像的几何变换
学习图像中的仿射变换(affine transform), 这是一种线性变换(涵盖旋转,平移,错切(shear), 缩放等线性变换),既然是线性变换则可以通过线性变换(矩阵)来获得.仿射变换矩阵M为2 ...
- 图像风格迁移_图像风格迁移—谷歌大脑团队任意图像风格化迁移论文详解
点击蓝字关注我们 AI研习图书馆,发现不一样的世界 风格迁移 图像风格化迁移是一个很有意思的研究领域,它可以将一张图的风格迁移到另外一张图像上,由此还诞生了Prisma和Ostagram这样的商业化产 ...
- python图像去污_图像去雾----暗通道
暗通道去雾算法原理及实现 1. 算法原理. 暗通道. 所谓暗通道是一个基本假设,这个假设认为,在绝大多数的非天空的局部区域中,某一些像素总会有至少一个颜色通道具有很低的值.这个其实很容易理解,实际生活 ...
- python图像下采样_图像的上采样(upsampling)与下采样(subsampled)
缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1.使得图像符合显示区域的大小:2.生成对应图像的缩略图. 放大图像(或称为上采样(upsampli ...
- java图像灰度直方图_图像灰度变换、二值化、直方图
1.灰度变换 1)灰度图的线性变换 Gnew = Fa * Gold + Fb. Fa为斜线的斜率,Fb为y轴上的截距. Fa>1 输出图像的对比度变大,否则变小. Fa=1 Fb≠0时,图像的 ...
- python图像倾斜校正_图像倾斜矫正
没有找到关于图像倾斜矫正的综述性文献,那就自己整理一下吧. 图像倾斜可以分为两种情况,一种是平面倾斜,这种情况下拍照设备与试卷平行,拍出来的图像只需要进行旋转即可完成矫正:另一种是Z轴倾斜,这种情况下 ...
- python绘制图像的参数_图像绘制.draw.line():系统错误:新样式getargs格式,但参数不是tup...
我在这个问题上看到了多个问题,但没能找到问题的答案.基本上,我只想在图像上画一条线,从python中的外部文件中获取坐标.我的代码是:import Image, ImageDraw import sy ...
- 图像语义分割_图像语义分割(9)-DeepLabV3: 再次思考用于图像语义分割的空洞卷积...
论文地址 :Rethinking Atrous Convolution for Semantic Image Segmentation 论文代码:Github链接 1. 摘要 文章主要的工作: 使用空 ...
- python图像去污_图像去雾毕业论文准备02-python中os标准库
OS:operate System 操作系统 os模块并不是python启动时的模块 导入os模块 import os 标准库 import os help(os) 1 getcwd()获取当前工作目 ...
最新文章
- RabbitMQ 发布/订阅
- java学习笔记(十一)基本数据类型的对象包装类
- Zookeeper的ACL权限控制
- C语言线性表之顺序表
- python项目开发实例-Python项目案例开发从入门到实战——爬虫、游戏
- 现代信号处理——自适应滤波器(匹配滤波器)
- 视频教程-思科CCNP专题系列②:EIGRP路由协议-思科认证
- 信号降噪方法——基于自适应神经模糊推理系统(ANFIS)的降噪处理
- 深度技术 Windows7 旗舰五周年纪念版
- python的快捷键是什么意思_Python基础知识—快捷键
- Python基础-电子邮件-初识
- Linux操作系统第一讲
- mac 设置mysql登录快捷键_Mac ox mysql启动登录和环境变量配置
- 密码(N Or M?)
- 图像语义分割网络FCN(32s、16s、8s)原理及MindSpore实现
- java单元测试自动生成测试用例插件diffblue cover和evosuite
- webM文件解析工具
- linux美国GE公司扫描机器,美国GE 反射内存卡
- 金山WPS代言人话说微软VBA大宝贝
- 「4」线性代数(期末复习)
热门文章
- EBS系统常见问题与故障
- UML复习资料 软件建模技术选择 仅供参考】
- 程序员提高工作效率的方法
- 居家办公提高工作效率的八点建议
- 服务器芯片成本,2021年全球服务器行业成本结构及出货量分析[图]
- STM32H7B0 HAL库中关于DMA的注意事项以及DCMI调试遇到的问题及解决方法
- 请设计输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用“6.2f“格式输出。
- Web前端:HTML5 CSS3
- CSS3相比CSS新增哪些功能
- iphone和android照片传输,iphone和安卓手机之间如何传文件图文教程