0

私は、xcode 4 で NITE/OPENNI と opencv を使用して、kinect を使用しています。たとえば、これは次の方法で行われます。

主に、ワイルの外(true):

 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);

これはすべて、しばらくするとメインで行われます(true)。

ここで私の質問は、ビデオストリームの手の座標の位置にある種のマーカー (例: *、十字線、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 に答える