WIN7+VS2012+opencv2.44+kinect 1.0
首先打开一个工程,这个工程是利用kinect能产生正确的彩色数据流,深度流等,并能利用Opencv在电脑上正确显示,如下图,彩色图,本人将骨架画在彩色图中可以一起保存
深度图
骨架图
你想通过按键盘上的什么键来保存哪种相应的图, 定义: 小写“c” 彩色图片(如果将骨架加在彩色图中,会将彩色图片和 骨架数据一起保存) 小写“d” 深度图片 小写“s” 骨架图片 小写“a” 上述所有图片 获取按键值,用 cvWaitKey()函数,会返回当前的按建值,若是Esc没退出显示,并释放设备,如下定义
最后调用一下检测按键的函数,1是函数名,将按键值传过来,2,是相应的按键动作匹配,3是文件要保存的相对路径,4是要保存的图想
下面给出核心代码保存图片函数:void imageSaveByKey(int & c){ int a=c; switch(a) { case 'c': { sprintf(ImagesName, '../Imagesave/color/color%.3d.jpg', cImgNum); cvSaveImage(ImagesName,colorImage); cImgNum++; };break; case 'd': { sprintf(ImagesName, '../Imagesave/depth/depth%.3d.jpg', dImgNum); cvSaveImage(ImagesName,depthImage); dImgNum++; };break; case 's': { sprintf(ImagesName, '../Imagesave/skeleton/skeleton%.3d.jpg', sImgNum); cvSaveImage(ImagesName,skeletonImage); sImgNum++; };break; case 'a': { sprintf(ImagesName, '../Imagesave/color/color%.3d.jpg', cImgNum); cvSaveImage(ImagesName,colorImage); cImgNum++; sprintf(ImagesName, '../Imagesave/depth/depth%.3d.jpg', dImgNum); cvSaveImage(ImagesName,depthImage); dImgNum++; sprintf(ImagesName, '../Imagesave/skeleton/skeleton%.3d.jpg',sImgNum); cvSaveImage(ImagesName,skeletonImage); sImgNum++; };break; default:break; }}
请在下面按大拇指