出处:http://oliver.zheng.blog.163.com/blog/static/1424115952013349234838/

(转载自"结冰的雪"百度空间)

目的:用OpenGL模拟针孔相机的视角。

针孔相机模型(Pinhole camera model):内参(intristric parameters)f(focal length)、cc(principle point)、kc(distroations)、alpha_c(skew coefficient);外参(extristric parameters)R(旋转)、t(平移)。详见http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html。相机可以用http://www.vision.caltech.edu/bouguetj/calib_doc/的方法标定(Calibrate)。

OpenGL 投影矩阵(projection matrix):推导过程详见http://www.songho.ca/opengl/gl_projectionmatrix.html,OpenGL的矩阵变换详见http://www.songho.ca/opengl/gl_transform.html。矩阵形式如下:


设置方法:

注意:fc与cc单位必须一致,或者为毫米,或者为像素。zfar与znear单位必须一致,一般为mm,即相机能看到的范围。而fc/cc与znear/zfar的单位可以不一致。

P的逆矩阵如下:

OpenGL 模型投影矩阵(modelview matrix):由于OpenGL默认视角位于原点,面向-z轴,而相机视角一般如下图所示,x轴向右,y轴向下,z轴向里,即物体在前方。所以要先将视角变化一下:gluLookAt(0, 0, 0, 0, 0, 1, 0, -1, 0)可以完成这个任务,它产生矩阵Mv。

 

世界坐标变换到相机坐标需要一个矩阵Mc,由旋转和平移构成:

所以最终的modelview matrix为:

至此P、M全部设置完成。

关于镜头畸变(lens distortion):这个比较复杂,如果镜头的畸变比较小简单忽略掉就可以了。如果不能忽略可以参考以下内容:

Lens Correction and Distortion:http://paulbourke.net/miscellaneous/lenscorrection/

OpenGL投影矩阵与相机模型(Set Projection Matrix for Pinhole Camera Model)相关推荐

  1. 投影和环境相机模型(PBRT)

    本文出自Physcially Base Rendering翻译 地址:https://pbr-book.org/3ed-2018/Camera_Models/Projective_Camera_Mod ...

  2. Pinhole camera model相机模型

    相机模型 数码相机图像拍摄的过程实际上是一个光学成像的过程.相机的成像过程涉及到四个坐标系:世界坐标系.相机坐标系.图像坐标系.像素坐标系以及这四个坐标系的转换. 理想透视模型--针孔成像模型 相机模 ...

  3. 1. pinhole camera model 小孔相机模型【cs231a课程笔记】

    文章目录 同系列链接 1.1. pinhole camera model 1.2. lens-based model (paraxial refraction model) distortion 1. ...

  4. opengl 投影矩阵和深度测试

    写在前面  上一节我们使用AssImp加载了3d模型,效果已经令人激动了.但是绘制效率和场景真实感还存在不足,接下来我们还是要保持耐心,继续学习一些高级主题,等学完后面的高级主题,我们再次来改进我们加 ...

  5. 相机投影原理、相机模型中的坐标系统以及标定方法(转载)

    文章目录 0 引言 1 相机投影中的坐标系及其转换关系 1.1 世界坐标系与相机坐标系 1.2 相机坐标系与图像坐标系:称为摄像机模型以及投影矩阵 1.3 图像坐标系与像素坐标系 1.4 从世界坐标系 ...

  6. 【脚下生根】之深度探索安卓OpenGL投影矩阵

    世界变化真快,前段时间windows开发技术热还在如火如荼,web技术就开始来势汹汹,正当web呈现欣欣向荣之际,安卓小机器人,咬过一口的苹果,winPhone开发平台又如闪电般划破了混沌的web世界 ...

  7. 模型矩阵、视图矩阵、投影矩阵

    模型视图投影矩阵的作用,就是将顶点从局部坐标系转化到规范立方体(Canonical View Volnme)中.总而言之,模型视图投影矩阵=投影矩阵×视图矩阵×模型矩阵,模型矩阵将顶点从局部坐标系转化 ...

  8. OpenGL ES之九——相机和投影

    概述 这是一个系列的Android平台下OpenGl ES介绍,从最基本的使用最终到VR图的展示的实现,属于基础篇.(后面针对VR视频会再有几篇文章,属于进阶篇) OpenGL ES之一--概念扫盲 ...

  9. 深入理解OpenGL之投影矩阵推导

    深入理解OpenGL之投影矩阵推导 OpenGL流水线中的投影矩阵以及坐标变换 OpenGL中,投影矩阵在Vertex shader中使用,用于变换顶点.一般和Model, View矩阵结合成MVP矩 ...

最新文章

  1. Liunx下MySQL常用命令
  2. Linux中常见shell命令总结
  3. Docker Swarm 用compose部署WordPress
  4. 科大星云诗社动态20220112
  5. Mysql 5.8 参数调优
  6. java手动注册filter,SpringBoot如何注册Servlet、Filter、Listener的几种方式
  7. react学习(45)----react组件
  8. Go 语言发布 2018 调查报告,最被诟病问题竟然是......
  9. MATLAB 检验矩阵中是否有某些元素 对元素统计
  10. 在华为能拿多少工资,揭秘一个真实的华为!
  11. html怎么做实心圆,html5如何使用canvas画空心圆与实心圆
  12. 获取局域网远程主机ipv6地址
  13. 固态硬盘(SSD)原理及相关介绍
  14. 例题5-10 UVA 207 PGA Tour Prize Money PGA巡回赛的奖金
  15. The Chicken and the Pig
  16. h5页面跳转微信小程序。
  17. js获取input输入框的值
  18. 春运动车组穿越在祁连山兰新高铁线上
  19. ----不知道这是不是好友里的buge~~~
  20. 大学生计算机课程内容1000字,大学生计算机实习报告1000字【一】.doc

热门文章

  1. 国产AI算力芯片简介-2023年
  2. win10-cpu-Yolov7
  3. Oracle ORA-01653 表空间不足
  4. OpenCV入门函数API解析
  5. ubuntu下apt-get安装及彻底卸载jdk
  6. html手机全面屏的适配,css实现适配iphone全面屏代码
  7. 数字,字母,汉字的校验
  8. 国产开源ChatGPT模型对比
  9. VOT工具的调试和TraX的配置中碰到的一些问题与处理方法
  10. c linux root 后挂载读写,Linux-挂载-mount