孙其功陪你学之——Kinect三维重建
2013-10-26 20:12
323 查看
在前面的内容中已经写到如何读取.pgm和.ppm文件,来获取Kinect得到的深度数据和彩色数据,深度数据
保存在mat[ ]中,彩色信息存在matppm[ ]中,如下是编程中将三维模型以点的形式画出的程序语句,在
Opengl程序中画出的。
下面两句程序,有深度图uv坐标和世界坐标的变换,像素点RGB的匹配,如有不懂,请查相关资料
希望能给大家有所帮助,如果分析中有不恰当的地方,望批评指正
for(int i=0;i<480;i++)
{
for(int j=0;j<640;j++)
{
if(mat[i*640+j]!=0)
{
glColor3ub(int (matppm[(i*640+j)*3]),int (matppm[(i*640+j)*3+1]),int (matppm[(i*640+j)*3+2]));
glVertex3f(double(0.0017*j*mat[i*640+j]+ (-0.4106f)*mat[i*640+j]),-double(0.0017*i*mat[i*640+j]+ (-0.5713f)*mat[i*640+j]),-mat[i*640+j]);
}
}
}
![](http://img.blog.csdn.net/20131026200729718?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTM1MDIwMzIyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
以上是以像素点组成的,视角发生改变后就会看到图像的失真。下图是将画图方法改为一个个小矩形面,改变视角后图像不失真。
![](http://img.blog.csdn.net/20131117114835796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTM1MDIwMzIyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
后期处理效果
![](http://img.blog.csdn.net/20131125171846609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTM1MDIwMzIyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20131125172043390?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTM1MDIwMzIyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20131125172535515?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTM1MDIwMzIyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
保存在mat[ ]中,彩色信息存在matppm[ ]中,如下是编程中将三维模型以点的形式画出的程序语句,在
Opengl程序中画出的。
下面两句程序,有深度图uv坐标和世界坐标的变换,像素点RGB的匹配,如有不懂,请查相关资料
希望能给大家有所帮助,如果分析中有不恰当的地方,望批评指正
for(int i=0;i<480;i++)
{
for(int j=0;j<640;j++)
{
if(mat[i*640+j]!=0)
{
glColor3ub(int (matppm[(i*640+j)*3]),int (matppm[(i*640+j)*3+1]),int (matppm[(i*640+j)*3+2]));
glVertex3f(double(0.0017*j*mat[i*640+j]+ (-0.4106f)*mat[i*640+j]),-double(0.0017*i*mat[i*640+j]+ (-0.5713f)*mat[i*640+j]),-mat[i*640+j]);
}
}
}
以上是以像素点组成的,视角发生改变后就会看到图像的失真。下图是将画图方法改为一个个小矩形面,改变视角后图像不失真。
后期处理效果
相关文章推荐
- Kinect的三维重建
- KinectFusion——微软基于KINECT的实时三维重建项目(KINECT)
- Kinect的三维重建
- 基于Kinect的室内三维重建
- Kinect的三维重建
- Kinect 三维重建
- Kinect实现简单的三维重建
- Kinect实现简单的三维重建
- Kinect实现简单的三维重建
- 三维重建(三)相机参数标定与光束平差法(Bundle Adjustment)
- Kinect Fusin 3D重建 运行设备情况
- vtk医学图像三维重建
- Smart3D系列教程3之 《论照片三维重建中Smart3D几个工作模块的功能意义》
- Smart3D系列教程5之 《案例实战演练2——大区域的地形三维重建》
- 关于三维重建过程框架的研究
- 三维重建相关参考链接
- 三维重建面试10:点云配准和点云匹配
- 三维地形图重建代码
- 双目测距与三维重建的OpenCV实现问题集锦(一)双目定标与双目校正
- 三维人脸重建和表情仿真