目录

1.1鱼眼镜头

1.2成像投影模型

​ 1.3鱼眼图像的矫正方法

   
        鱼眼全景成像是利用超广角镜头来实现全 成像的 种成像技术,这里的超广角镜头 通常指的就是鱼眼镜头。

1.1鱼眼镜头

        鱼眼镜头其实是一种焦距极短并且视角接近或等于 180度 的超广角镜头,之所以称为 "鱼眼镜头",是因为它的镜片结构与真实鱼眼的结构颇为相似。

鱼眼镜头具有相当长的景深,有利于表现图像的长景深效果。鱼眼镜头有两种,一种像其他镜头一样,成像充满画面,另一种成像为圆形。

1.2成像投影模型

        普通的光学镜头都遵守"相似"成像准则,即像与物总是相似的,理想的像高公式为:
        式中为光学镜头的焦距 ;w 为物方 半视场角 对于鱼眼成像而言,其目的就是要将半球空间中的景物成像在有限的像面上,即 趋近于 90 度 ,此时 将趋近于无穷大, 即对于接近半球面的物面,像面将变得无穷 ,这 是不可能实现的 ,而且 将半球面成 像为平面本身也违反了"相似"成像准则 。
        为了实现鱼眼成像,即将半球物面成像在有限像面上, 需要选择适当的理想成像公 式来满足鱼眼镜头的成像要求, 一般有如下 几种投 影公式可以将半球视场或大于半球视 场的 空域投影在有限的像面上。
目前,市场上的大部分鱼眼镜头采 用的是式 等距投影模型:

图8.23

 1.3鱼眼图像的矫正方法

在讨论鱼眼图像的校正方法之前,先证明理想鱼眼镜头的一个性质。如图8  -24 示,在照相机坐标系 中,以视点为球心,以照相机焦距/为球半径的球面上有 个点P(x,y,z),点P在xz平面上的投影点,为Q(u,0,w),设

 

代码:

from PIL import Image
import mathdef fish_eye_dis(img):"fish eye distortion"width_in, height_in = img.size;im_out = Image.new("RGB",(width_in,height_in));radius = max(width_in, height_in)/2;#assume the fov is 180#R = f*thetalens = radius*2/math.pi;for i in range(width_in):for j in range(height_in):#offset to centerx = i - width_in/2;y = j - height_in/2;r = math.sqrt(x*x + y*y);theta = math.atan(r/radius);if theta<0.00001:k = 1;else:k = lens*theta/r;src_x = x*k;src_y = y*k;src_x = src_x+width_in/2;src_y = src_y+height_in/2;pixel = im.getpixel((src_x,src_y));im_out.putpixel((i,j),pixel);return im_out;if __name__=="__main__":input_name = "image0.jpg";output_name = "image_dis.jpg";im = Image.open(input_name);img_out = fish_eye_dis(im);img_out.save(output_name);print "fish eye distortion completely, save image to %s" % output_name

代码来源:https://blog.csdn.net/smallflyingpig/article/details/56687436

仅作学习,详情请参考《计算摄影学基础》

全景成像技术(3)—鱼眼全景成像相关推荐

  1. 雷达成像技术_毫米波立体成像雷达技术研究

    作者 | 冯奇.万庆冕.陈建霖(上汽前瞻技术研究部)来源 |智车行家.<汽车实用技术 >   毫米波雷达目前是车用探测雷达中最为主要的探测器件,但目前的毫米波雷达是进行二维扫描平面扫描,如 ...

  2. 技术分享:全景视频技术的实现

    全景视频技术的实现 全景视频在VR领域是一个非常热门的领域,它是在720度或者360度全景的技术之上发展延伸而来.它将静态的全景图片转化为动态的视频图像,全景视频可以在拍摄角度左右上下360度的任意观 ...

  3. 活体生物发光成像技术原理及应用

    一.技术原理 1. 标记原理 哺乳动物生物发光,一般是将 Firefly luciferase 基因(由 554 个氨基酸构成,约 50KD)即荧光素酶基因整合到预期观察的细胞染色体 DNA 上以表达 ...

  4. 虹科分享 | 带您了解太赫兹成像技术及系统方案

    上篇 太赫兹波定义为0.1-10THz范围内的电磁波,处于微波与红外之间,具有许多独特的性质,比如穿透性.非电离辐射.吸水性.指纹频谱等,在材料识别.安全检查与无损检测方面有诸多应用. 图1 太赫兹波 ...

  5. 虹科分享|太赫兹成像技术的分类与原理

    太赫兹波定义为0.1-10THz范围内的电磁波,处于微波与红外之间,具有许多独特的性质,比如穿透性.非电离辐射.吸水性.指纹频谱等,在材料识别.安全检查与无损检测方面有诸多应用. 图1 太赫兹波在电磁 ...

  6. 全景摄像技术大有可为

    网络摄像机发展至今,已经基本满足了"高清"."日夜监控"."远距离监控"的需求,但是 随着细分市场的发展,超广角摄像机需求逐渐凸显出来.主要 ...

  7. 各种光学仪器成像技术(上)

    各种光学仪器成像技术(上) 光学是一门很古老的学科,按照Optics的意思,它主要是研究可见光波段的问题. 光学也是一门很有意思的学科.从把光抽象成射线进行处理(光线光学)到把光纳入电磁波的范围(物理 ...

  8. 机器人视觉三维成像技术全解析

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在工业4.0时代,国家智能制造高速发展,传统的编程来执行某一动作的 ...

  9. 欧盟科学家突破纳米尺度高清晰红外显微成像技术

    欧盟第七研发框架计划提供415万欧元资助,总研发投入550万欧元,由欧盟6个成员国爱尔兰.意大利.法国.德国比利时和罗马尼亚的跨学科科技人员组成LANIR科研团队,成功突破纳米尺度高清晰红外显微成像技 ...

最新文章

  1. 掌握这10个Python小技巧,让你敲代码速度快5倍不止
  2. Struts学习(五):对POJO对象访问的支持
  3. linux大文件拷贝,Linux如何提高大文件的拷贝效率
  4. php 累,php 记录进行累结果
  5. 你还在 new 对象吗?Java8 通用 Builder 了解一下?
  6. android surfaceview camera,android – 如何在SurfaceView上显示相机预览?
  7. 在多重Catch的情况下得到异常的完整信息
  8. Python解决print()不换行问题
  9. Tablet UI模式: 中心舞台
  10. jquery 替换括号里面内容_【推荐】前端框架 Bootstrap 5.0 alpha 发布,不再依赖 jQuery...
  11. paip.提升效率---模块化设计方法V2012.9.15
  12. 怎么查询共享使用人_为什么使用“共享充电宝”的人越来越少?
  13. linux操作系统结构体系,Linux操作系统结构分析 郭玉东.pdf
  14. android浏览器自动全屏,Android开发实现浏览器全屏显示功能
  15. 强大的excel密码破解网站 解决了忘记excel密码的问题
  16. C++打开网页,发起QQ对话,调用外部exe程序
  17. SQL Server 代理 显示异常,未开启
  18. 简单弄懂配置github CND加速
  19. 逍遥情缘服务器维护没通告,【维护公告】2月2日中午12:00维护公告
  20. 齐博x1如何调用系统自定义字段

热门文章

  1. Java基础语法教学视频,MySql知识体系总结(SQL优化篇
  2. 成功使用Python批量制作学员毕业海报心愿卡
  3. 智能手表爆发在即,差异化靠这五点
  4. WIN10 隐藏Administrator账户的方法
  5. gif制作 word2007插入gif
  6. [原]数据科学教程:R语言与NoSQL
  7. JAVA四大排序介绍
  8. Hive 快速入门(全面)
  9. jarsigner: 找不到app的证书链——Android 应用认领【oppo应用商店】
  10. Python下mysql数据库连接池