深度+颜色的3D投影
3D projection of depth + color
我有一张彩色图像及其深度图,这两张图像都是Kinect拍摄的。我想把它投影到另一个位置(看看它在另一个视点中的样子)。由于我没有Kinect的内在参数(相机参数);我该如何实现它?
p.S:我正在用C++编写代码。
有了深度框架和颜色框架,你应该有足够的数据来实现类似于你想要做的事情。
在颜色框中,您有每个像素的颜色。在深度帧中,您有每个像素的距离。
(请记住,由于每个传感器的位置,深度帧和颜色帧中的数据之间有一个小间隙。查看映射辅助方法:MapDepthFrameToColorFrame)
如果同时获取深度和颜色框中的所有数据,则可以将每个像素绘制为三维世界中的一个点。假设您的分辨率为640x480。您将在640(x=宽度)、480(y=高度)、~3000(z=深度)的矩形中绘制一个场景。然后你就可以改变观点了!
唯一的问题是Z轴的比例不正确。如果想要更好的结果,还应该使用SkeletonFrame。因此,您将获得实际的X、Y和Z值(以米为单位)。您可以再次使用辅助方法(MapDepthToSkeletonPoint)为每个深度点获取相应的骨架点!
如果你看一下这篇文章,你会发现一个视频显示了结果,一些C#代码,以及一个可以重用的项目示例。
相关文章:
- 无法将结构注册为增强几何体3D点
- OpenGL大的3D纹理(>2GB)非常慢
- 是什么导致了Unity 3D中的"错误线程异常"?
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法
- 如何使用Qt 3D库加载和显示搅拌机.obj源文件场景
- 应用投影矩阵后对象消失
- 如何从 3D 曲面网格中删除自相交三角形?
- CUDA 使用共享内存平铺 3D 卷积实现
- 检查框内的 3D 点
- 如何在 3D OpenGL 场景上绘制 SDL 2D 矩形?
- Frank Luna 在他的书"使用 DirectX12 进行 3D 游戏编程"的介绍中盒子示例的问题
- 3D透视图投影,带有摄像头旋转
- 变换从三焦点张量计算的投影矩阵以估计3D点
- OpenCV立体视觉3D坐标到2D相机平面投影不同于将2D点三角化到3D
- 深度+颜色的3D投影
- 迭代非线性最小二乘优化3d到2d投影
- 鼠标坐标到3D世界/投影点碰撞
- 使用来自三焦点张量的投影矩阵进行 3D 重建
- 使用视锥体的3D到2D投影存在平移问题