【问题标题】:How to get the coordinate of a pixel that is containing right hand wrist joint, in depth image using kinect?如何使用kinect获取包含右手手腕关节的像素坐标,深度图像?
【发布时间】:2019-07-25 18:52:31
【问题描述】:

我在房间里拍摄了人体的深度图像,并收集并保存了与该深度图像相关的骨骼数据(手腕、肘部等关节)。
Considering the joints' coordinates are in the camera space and depth image is in depth space,我能够使用此代码在深度图像上显示右手手腕关节的位置:

depthJointIndices = metadata.DepthJointIndices(:, :, trackedBodies);
plot(depthJointIndices(11,1), depthJointIndices(11,2), '*');

现在我想知道哪个像素完全包含右手手腕关节,我该如何正确执行此操作?
我想我可以使用我用来显示右手手腕关节的代码获得该关节的x,y 的坐标。
如下:

depthJointIndices = metadata.DepthJointIndices(:, :, trackedBodies);
x=depthJointIndices(11, 1)
y=depthJointIndices(11, 2)

但是x,y是这样计算的:

x = 303.5220

y = 185.6131

如您所见,x,y 是浮点数,但像素坐标不能是浮点数。
那么有人可以帮我解决这个问题吗?如何使用 kinect 在深度图像中获取包含右手手腕关节的像素的坐标?

【问题讨论】:

    标签: matlab image-processing mapping kinect


    【解决方案1】:

    您可以使用以下 2 个方程来推导坐标。

    这里,

    (U,V)和Z分别表示屏幕坐标和深度值,Cx和Cy表示深度图的中心,fx和fy是相机的焦距。对于 Kinect-V1 相机,fx = fy = 580

    您可以参考 P. Wang 等人的论文 Action Recognition From Depth Maps Using Deep Convolutional Neural Networks 了解更多信息。

    【讨论】:

    • 不完全是。您可以将答案四舍五入到最接近的整数。我已经使用这个公式来获取像素的 z 值,它对我有用。
    • 但这是个问题,请问您能否帮她解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 2012-07-31
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2012-07-31
    • 1970-01-01
    • 2021-04-13
    相关资源
    最近更新 更多