本文转载至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进行解码,需要自行配置,否则无法运行),如果有兴趣的可以去下载。

图像坐标球面投影_图像の球面投影算法相关推荐

  1. 图像修复 图像补全_图像修复简介

    图像修复 图像补全 In practical applications, images are often corroded by noise. These noises are dust or wa ...

  2. matlab 通过矩阵变换使图像旋转平移_图像的几何变换

    学习图像中的仿射变换(affine transform), 这是一种线性变换(涵盖旋转,平移,错切(shear), 缩放等线性变换),既然是线性变换则可以通过线性变换(矩阵)来获得.仿射变换矩阵M为2 ...

  3. 图像风格迁移_图像风格迁移—谷歌大脑团队任意图像风格化迁移论文详解

    点击蓝字关注我们 AI研习图书馆,发现不一样的世界 风格迁移 图像风格化迁移是一个很有意思的研究领域,它可以将一张图的风格迁移到另外一张图像上,由此还诞生了Prisma和Ostagram这样的商业化产 ...

  4. python图像去污_图像去雾----暗通道

    暗通道去雾算法原理及实现 1. 算法原理. 暗通道. 所谓暗通道是一个基本假设,这个假设认为,在绝大多数的非天空的局部区域中,某一些像素总会有至少一个颜色通道具有很低的值.这个其实很容易理解,实际生活 ...

  5. python图像下采样_图像的上采样(upsampling)与下采样(subsampled)

    缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1.使得图像符合显示区域的大小:2.生成对应图像的缩略图. 放大图像(或称为上采样(upsampli ...

  6. java图像灰度直方图_图像灰度变换、二值化、直方图

    1.灰度变换 1)灰度图的线性变换 Gnew = Fa * Gold + Fb. Fa为斜线的斜率,Fb为y轴上的截距. Fa>1 输出图像的对比度变大,否则变小. Fa=1 Fb≠0时,图像的 ...

  7. python图像倾斜校正_图像倾斜矫正

    没有找到关于图像倾斜矫正的综述性文献,那就自己整理一下吧. 图像倾斜可以分为两种情况,一种是平面倾斜,这种情况下拍照设备与试卷平行,拍出来的图像只需要进行旋转即可完成矫正:另一种是Z轴倾斜,这种情况下 ...

  8. python绘制图像的参数_图像绘制.draw.line():系统错误:新样式getargs格式,但参数不是tup...

    我在这个问题上看到了多个问题,但没能找到问题的答案.基本上,我只想在图像上画一条线,从python中的外部文件中获取坐标.我的代码是:import Image, ImageDraw import sy ...

  9. 图像语义分割_图像语义分割(9)-DeepLabV3: 再次思考用于图像语义分割的空洞卷积...

    论文地址 :Rethinking Atrous Convolution for Semantic Image Segmentation 论文代码:Github链接 1. 摘要 文章主要的工作: 使用空 ...

  10. python图像去污_图像去雾毕业论文准备02-python中os标准库

    OS:operate System 操作系统 os模块并不是python启动时的模块 导入os模块 import os 标准库 import os help(os) 1 getcwd()获取当前工作目 ...

最新文章

  1. RabbitMQ 发布/订阅
  2. java学习笔记(十一)基本数据类型的对象包装类
  3. Zookeeper的ACL权限控制
  4. C语言线性表之顺序表
  5. python项目开发实例-Python项目案例开发从入门到实战——爬虫、游戏
  6. 现代信号处理——自适应滤波器(匹配滤波器)
  7. 视频教程-思科CCNP专题系列②:EIGRP路由协议-思科认证
  8. 信号降噪方法——基于自适应神经模糊推理系统(ANFIS)的降噪处理
  9. 深度技术 Windows7 旗舰五周年纪念版
  10. python的快捷键是什么意思_Python基础知识—快捷键
  11. Python基础-电子邮件-初识
  12. Linux操作系统第一讲
  13. mac 设置mysql登录快捷键_Mac ox mysql启动登录和环境变量配置
  14. 密码(N Or M?)
  15. 图像语义分割网络FCN(32s、16s、8s)原理及MindSpore实现
  16. java单元测试自动生成测试用例插件diffblue cover和evosuite
  17. webM文件解析工具
  18. linux美国GE公司扫描机器,美国GE 反射内存卡
  19. 金山WPS代言人话说微软VBA大宝贝
  20. 「4」线性代数(期末复习)

热门文章

  1. EBS系统常见问题与故障
  2. UML复习资料 软件建模技术选择 仅供参考】
  3. 程序员提高工作效率的方法
  4. 居家办公提高工作效率的八点建议
  5. 服务器芯片成本,2021年全球服务器行业成本结构及出货量分析[图]
  6. STM32H7B0 HAL库中关于DMA的注意事项以及DCMI调试遇到的问题及解决方法
  7. 请设计输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用“6.2f“格式输出。
  8. Web前端:HTML5 CSS3
  9. CSS3相比CSS新增哪些功能
  10. iphone和android照片传输,iphone和安卓手机之间如何传文件图文教程