0

我正在使用 xcode 4 中的 NITE/OPENNI 和 opencv 来使用 kinect。我能够获得头部的坐标,例如,这是通过以下方式完成的:

总的来说,在诡计之外(真):

 IplImage *rgbimg = cvCreateImageHeader(cvSize(640,480), 8, 3);

然后在诡计中(真)

XnSkeletonJointPosition Head;
g_UserGenerator.GetSkeletonCap().GetSkeletonJointPosition( aUsers[i], XN_SKEL_HEAD, Head); 
printf("%d: (%f,%f,%f) [%f]\n", aUsers[i], Head.position.X, Head.position.Y, Head.position.Z, Head.fConfidence); }

我也有一个视频流:

    // Take current image
    const XnRGB24Pixel* pImage = Xn_image.GetRGB24ImageMap();

    //process image data
    XnRGB24Pixel* ucpImage = const_cast<XnRGB24Pixel*> (pImage);
    cvSetData(rgbimg,ucpImage, 640*3);
    cvCvtColor(rgbimg,rgbimg,CV_RGB2BGR);
    cvShowImage("RGB",rgbimg);

这一切都是在一段时间内完成的(真的)。

现在我的问题是如何在视频流中手的坐标位置设置某种标记(例如:*、十字准线、X)?

编辑

我试过:

XnRGB24Pixel* ucpImage = const_cast<XnRGB24Pixel*> (pImage);
cvSetData(rgbimg,ucpImage, 640*3);
cvCvtColor(rgbimg,rgbimg,CV_RGB2BGR);
cvCircle(rgbimg, cvPoint(Head.position.X,Head.position.Y), 20, cvScalar(0,255,0), 1);
cvShowImage("RGB",rgbimg);

我得到:

在此处输入图像描述

正如你所看到的,圆圈出于某种原因停留在左上角。任何想法如何改变这个?

4

1 回答 1

0

尝试 OpenCV 中的显示功能:

line(), circle(), drawPoly() 并将它们应用到视频中的每一帧

于 2011-11-11T11:06:27.897 回答