如何获得extrensic(深度)相机参数 [英] How to get extrensic (depth)camera parameters

查看:123
本文介绍了如何获得extrensic(深度)相机参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿伙计们!

感谢channel9和这个论坛,我能够从Kinect获得一个3d pointcloud(通过使用MapDepthToSkeletonPoint方法)。

Thanks to channel9 and this forum, I was able to get a 3d pointcloud from the Kinect(by using MapDepthToSkeletonPoint method).

然而,我的最终目标是从传送带上选择带有机器人的物体。并且kinect安装在垂直向下的输送机上方,它将为我提供信息,包括哪些物体(由于边界和高度)以及这些物体在哪里(X,Y,Z)
(然后输送机开始移动,机器人抓住物体,......)

My final goal however, is to pick objects with a robot from a conveyor. And the kinect is mounted above the conveyor looking vertical down to it, which shall provide me the information what kind of objects(due to border and height) there are and also where(X,Y,Z) these objects are.(then the conveyor starts moving, robot grabs objects, ...)

所以,我当前的问题是,我现在需要得到一个
旋转和平移矩阵
(或者更容易吗?)到目前为止,我还没有确定任何参考对象;棋盘,或(我想这也可以做到这一点)三个高架点
旁边的传送带(如4个螺丝头)以固定的,已知的,二次排列。

So, my current problem is, that I now need to get a rotation&translation matrix(or is there something easier?) from the Kinect camera coordinate system to real word coordinates. I am not settled on any referenceobject so far; chessboard, or (I guess this could do the trick also) three elevated points alongsides the conveyor(like 4 screwheads) in an fixed, known, quadratic arrangement.

有谁有想法,如何获得这样的翻译矩阵的参数?我在网上搜索了kinect和extrensic相机参数,没有任何真正相关的线索。与此同时,我偶然发现了

EMGU
但是我不确定它是否包含我需要分别提供我需要的结果的函数。

Has anyone an idea, how to get the the parameters for such a translation matrix? I searched the web for kinect and extrensic camera parameters without any really relevant leads. Meanwhile i stumbled upon EMGU but i'm not sure if it contains the functions I would need respectively deliver the results i need.

因为我只有非常基本的C ++知识,所以我选择了这个使用c#进行项目(给我一个更容易的印象)并在过去几周内构建了一个围绕我的应用程序的非常简洁的框架。因此,我会感谢任何解决方案,它基于
也基于C#,但我也可以访问Matlab及其丰富的工具箱。

Since I have only very basic knowledge of C++, I chose to work in this project with c#(made an easier impression to me)and build me in the last few weeks a pretty neat framework around my application. Therefore I would appreciate any solution, which bases also on C#, however I have also access to Matlab and its plenty toolboxes.

任何提示或建议都非常非常感谢,因为我的项目时间接近结束,我离预期的结果还很远(惊讶,惊讶)。

Any hints or recommendations are very, very appreciated, since my project timespan is approaching its end, and i am still far far far away from the expected results(suprise, suprise).

最好的问候,

me :)

推荐答案

表达最简单的方式MapDepthPointToSkeletonPoint执行的转换是:

The simplest way to express the transformation performed by MapDepthPointToSkeletonPoint is:

zSkeleton =(double)depth * 0.001;

xSkeleton =(((double)x /(double)width) - 0.5 )* zSkeleton * 1.12032;

ySkeleton =(0.5 - ((double)y /(double)height)  * zSkeleton * 0.84024;

zSkeleton = (double)depth * 0.001;
xSkeleton = (((double)x / (double)width) - 0.5) * zSkeleton * 1.12032;
ySkeleton = (0.5 - ((double)y / (double)height) * zSkeleton * 0.84024;

.. .where:

...where:


  • x和y是深度框架中像素的坐标
  • 深度是深度(以毫米为单位)像素
  • 宽度和高度是深度帧的尺寸(例如,640x480,320x 240等。)

x和y公式中的乘数是从Kinect深度相机的视场角度得出的常数。

The multipliers in the x and y formulae are constants derived from the Kinect depth camera's field-of-view angle.

John

K4W Dev

John
K4W Dev


这篇关于如何获得extrensic(深度)相机参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆