如何实现基于深度图像的渲染(DIBR)和3D图像扭曲在OpenCV和计算机图形学中的应用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1951个文字,预计阅读时间需要8分钟。
最近学习DIBR并尝试实现。网上相关资料较少,多数为爬虫内容,决定自己编写一个。DIBR即基于深度图像的渲染问题。输入一个视角下的图像和深度图,要求输出另一个视角下的虚拟图像。
最近在学习DIBR并尝试实现。感觉网上相关资料比较少,大多还是爬虫,决定自己写一个。
DIBR就是depth image based rendering问题。输入一个视角下的图像和深度图,要求你输出另外一个虚拟视角下的图像(当然两个视角的内外参矩阵都有办法通过已知信息求得)。
总共分三步:内参提取 和 外参提取 ,以及DIBR的主过程。这里按照网上其他博客的顺序,先介绍内参提取。看的过程中注意坐标系的定义。由于是第一次接触,这里我采用的坐标系可能和常规的坐标系不太一样。
开始之前先介绍一些定义(基于我自己实现算法的时候所使用的数据集):
\((u,v,1)^T\)为一个点的像素坐标。
\((x,y,1)^T\)为一个点在图像平面上以物理距离衡量的坐标。
\((X,Y,Z)\)为一个点在相机坐标系下的坐标。
\((X_w,Y_w,Z_w)\)为一个点在世界坐标系下的坐标。
\(f_x、f_y\)分别表示X轴的焦距和Y轴的焦距(非理想情况下横向和纵向的焦距是不一样的)。
\(d_x、d_y\)分别表示X轴(对应于图像的U轴)和Y轴(对应于图像的V轴)每个像素的物理尺寸(一个像素实际有多长)。
\(p_u、p_v\)表示相机的主点(principal point,就是相机主轴与成像平面的交点)在图像中的位置(以像素为单位)。
像素纵横比:\(pixel\ aspect\ ratio\)。表示像素的实际尺寸的高与宽之比。
本文共计1951个文字,预计阅读时间需要8分钟。
最近学习DIBR并尝试实现。网上相关资料较少,多数为爬虫内容,决定自己编写一个。DIBR即基于深度图像的渲染问题。输入一个视角下的图像和深度图,要求输出另一个视角下的虚拟图像。
最近在学习DIBR并尝试实现。感觉网上相关资料比较少,大多还是爬虫,决定自己写一个。
DIBR就是depth image based rendering问题。输入一个视角下的图像和深度图,要求你输出另外一个虚拟视角下的图像(当然两个视角的内外参矩阵都有办法通过已知信息求得)。
总共分三步:内参提取 和 外参提取 ,以及DIBR的主过程。这里按照网上其他博客的顺序,先介绍内参提取。看的过程中注意坐标系的定义。由于是第一次接触,这里我采用的坐标系可能和常规的坐标系不太一样。
开始之前先介绍一些定义(基于我自己实现算法的时候所使用的数据集):
\((u,v,1)^T\)为一个点的像素坐标。
\((x,y,1)^T\)为一个点在图像平面上以物理距离衡量的坐标。
\((X,Y,Z)\)为一个点在相机坐标系下的坐标。
\((X_w,Y_w,Z_w)\)为一个点在世界坐标系下的坐标。
\(f_x、f_y\)分别表示X轴的焦距和Y轴的焦距(非理想情况下横向和纵向的焦距是不一样的)。
\(d_x、d_y\)分别表示X轴(对应于图像的U轴)和Y轴(对应于图像的V轴)每个像素的物理尺寸(一个像素实际有多长)。
\(p_u、p_v\)表示相机的主点(principal point,就是相机主轴与成像平面的交点)在图像中的位置(以像素为单位)。
像素纵横比:\(pixel\ aspect\ ratio\)。表示像素的实际尺寸的高与宽之比。

