之前用OpenCV的显示方法可以把Kinect的三种图像数据显示在控制台应用中了,现在是想把他们显示在MFC的picture control控件上面,编译没问题,运行不是有断言中断就是内存访问非法。求大神给个相对正确的方法,谢谢了先!!!

解决方案 »

  1.   

    怎么把我通过kinect获取到的数据转为OpenCV的IplImage之后,我想用MFC的picture control控件加载转化之后的IplImage数据,这就是我现在想请教各位大神的问题,不是解Bug调试的问题,望知情的大神不吝赐教,小生恭候佳音!!!!!!!!!!!
      

  2.   

    你的问题解决了没,我在用MFC做kinect的视频显示,但是很乱,没弄好呢,求指导啊
      

  3.   

    先定义:DrawPicToHDC(IplImage* img, unsigned int ID)
    {
    CDC *pDC = GetDlgItem(ID)->GetDC();
    HDC hDC= pDC->GetSafeHdc();
    CRect rect;
    GetDlgItem(ID)->GetClientRect(&rect);
    CvvImage cimg;
    cimg.CopyOf(img,img->nChannels);
    cimg.DrawToHDC(hDC,&rect);
    ReleaseDC(pDC);
    }
     随后在ontimer里面添加
         eResult = mContext.WaitNoneUpdateAll(); ///刷新数据的备份区域
    depthMD = mDepthGenerator.GetDepthMap(); 
    imgMD = mImageGenerator.GetImageMap(); memcpy(dep16Img->imageData,depthMD,640*480*2);
    cvConvertScale(dep16Img,depthImg,255/4096.0,0);
    memcpy(bgrImg->imageData,imgMD,640*480*3);
    cvCvtColor(bgrImg,rgbImg,CV_RGB2BGR);
    mDepthGenerator.GetMetaData(mDepthMD);
    DrawPicToHDC(rgbImg, IDC_STATIC_COLOR);
    DrawPicToHDC(depthImg, IDC_STATIC_DEPTH);应该就可以的了,我可以显示出来