私は、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);
そして私は得る:
ご覧のとおり、何らかの理由で円が左上隅に留まっています。これを変更する方法はありますか?