资源简介
Kinect运用OpenNI产生点云
http://blog.csdn.net/opensource07/article/details/7804246
代码片段和文件信息
#include “DepthmapToPointCloud.h“
#include
#include
#include
#define TODEGREE 57.2957795 // radian->degree
#define PI 3.1415926
/**
* global variable
*/
xn::Context context;
xn::DepthGenerator dethGenerator;
DepthmapPointCloud cloud(context dethGenerator);
/**
* OpenGL drawing
*/
int h_rotate_angle=0 v_rotate_angle=0; // h: horizontal v: vertical
GLfloat cameraX=0.0f cameraY=0.0f cameraZ=0.0f; // 相机坐标位置
GLfloat h_rotate_radianh_sin_value h_cos_value; // 旋转角度、对应角度sin值与cos值
GLfloat v_rotate_radianv_sin_value v_cos_value;
const GLfloat origin_to_center = 2.5f; // 坐标原点到gluLookAt函数中视线点center的距离
GLfloat zoom_step = origin_to_center; // 缩放变量
void OpenGL_init(void)
{
glClearColor(0.0f 0.0f 0.0f 1.0f); // background color: white
glShadeModel(GL_FLAT);
glClear(GL_COLOR_BUFFER_BIT);
}
//////////////////////////////////////
void OpenGL_rending(void)
{
// GLshort r=0 g=0 b=0;
glColor3f(1.0f 1.0f 1.0f);
glPointSize(0.1f);
glBegin(GL_POINTS);
for (unsigned int i=0; i {
// if (cloud.getPointCloudData()[i].Z >=0.0f && cloud.getPointCloudData()[i].Z < 0.4f) { r=1.0f; g=1.0f; b=1.0f; } // 白色
// else if (cloud.getPointCloudData()[i].Z >= 0.4f && cloud.getPointCloudData()[i].Z < 0.8f) { r=0.0f; g=1.0f; b=1.0f; } // 青色
// else if (cloud.getPointCloudData()[i].Z >= 0.8f && cloud.getPointCloudData()[i].Z < 1.2f) { r=1.0f; g=0.0f; b=1.0f; } // 洋红
// else if (cloud.getPointCloudData()[i].Z >= 1.2f && cloud.getPointCloudData()[i].Z < 1.6f) { r=0.0f; g=0.75f; b=1.0f; } // 深天蓝
// else if (cloud.getPointCloudData()[i].Z >= 1.6f && cloud.getPointCloudData()[i].Z < 2.0f) { r=1.0f; g=0.27f; b=0.0f; } // 橙红
// else { r=0.0f; g=0.0f; b=0.0f; } // 黑色
// 深度图形式表示
// if (cloud.getPointCloudData()[i].Z >= 0.4)
// r = g = b = (int)((cloud.getPointCloudData()[i].Z-0.4)*100)>>1;
// else
// r = g = b = 255;
// glColor3b(r g b);
glVertex3f(cloud.getPointCloudData()[i].X cloud.getPointCloudData()[i].Y cloud.getPointCloudData()[i].Z);
}
glEnd();
cloud.updataPointCloud(); // update next frame cloudpoint data
glFlush();
glutSwapBuffers();
}
/////////////////////////////////////
void OpenGL_Idel()
{
OpenGL_rending(); // 刷新显示
glClear(GL_COLOR_BUFFER_BIT);
}
/////////////////////////////////////
void OpenGL_changeSize(int w int h)
{
glViewport(0 0 GLsizei(w) GLsizei(h));
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// if (w <= h) // 正交投影
// glOrtho(-2.0 2.0 -2.0*(GLfloat)h/(GLfloat)w 2.0*(GLfloat)h/(GLfloat)w -10.0 10.0);
// else
// glOrtho(-2.0*(GLfloat)w/(GLfloat)h 2.0*(GLfloat)w/(GLfloat)h -2.0 2.0 -10.0 10.0);
gluPerspective(60.0 (GLfloat)w/(GLfloat)h 0.1f 50.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(cameraX cameraY cameraZ 0.0f 0.0f 0.1f 0.0f 1.0f 0.0f);
}
////////////////////////////////////
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-10-17 10:24 DepthmapToPointCloud_OpenGL\
文件 948 2012-07-29 10:52 DepthmapToPointCloud_OpenGL.sln
文件 4095 2012-08-13 10:11 DepthmapToPointCloud_OpenGL\DepthmapToPointCloud.h
文件 3706 2012-07-30 08:39 DepthmapToPointCloud_OpenGL\DepthmapToPointCloud_OpenGL.vcxproj
文件 1088 2012-07-29 11:33 DepthmapToPointCloud_OpenGL\DepthmapToPointCloud_OpenGL.vcxproj.filters
文件 143 2012-07-29 10:52 DepthmapToPointCloud_OpenGL\DepthmapToPointCloud_OpenGL.vcxproj.user
文件 6881 2012-08-02 11:10 DepthmapToPointCloud_OpenGL\PointCloudDisplay.cpp
相关资源
- 高博修改的orbslam2带点云程序修改后的
- Kinect获取深度图,鼠标点击获取该点
- 基于渐进三角网的机载LiDAR点云数据滤
- geomagic点云处理
- Kinect 保存彩色图和深度图
- 点云库PCL学习教程-PDF完整版
- windows intel_sdk_for_opencl
- Kinect驱动,PC上驱动之一
- 基于最小二乘法估计点云的曲面法向
- 知名的斯坦福兔子的三维点云数据,
- OpenNI_NITE_Installer-win32-0.27
- Kinect for windows需要的头文件
- 点云特征提取方法综述
- pcl点云数据文件 兔子
- 点云数据基本处理及应用
- 三维点云抽稀.rar
- 论文研究-结合超体素和区域增长的植
- PCL点云库IterativeClosestPoint用法demo
- Kinect for windows 破解 一,简单的体感超
- Kinect中文文档,
- 斯坦福兔.7z点云扫描文件 pcd格式
- Kinect和Processing入门
- Kinect V2 for windows 体感控制PPT by LSS
- KinectManager解析
- QT-opengl窗体,实现了 1.绘制立方体,
- 三维激光扫描点云配准
- kinect获取彩色数据并用图片形式进行
- KinectV2结合Processing调试驱动安装文档
- Kinect控制ppt播放.rar
- 泊松算法
评论
共有 条评论