Kinect SDK2.0 + OpenCV 3.0 摳人,換背景


使用Kinect2.0的MultiSourceFrameReader,同時獲取DepthFrameSource, ColorFrameSource, BodyIndexFrameSource,然后獲取相應幀。

hr = pMyKinect->OpenMultiSourceFrameReader(FrameSourceTypes::FrameSourceTypes_Depth |
            FrameSourceTypes::FrameSourceTypes_Color | FrameSourceTypes::FrameSourceTypes_BodyIndex,
            &pMultiSourceFrameReader);

 

再通過,空間映射,把彩色空間映射到深度空間,因為bodyIndex的空間和深度空間相同,所以可以直接對映射到深度空間的彩色像素做相應處理。細節直接看代碼。

hr = pCoordinateMapper->MapColorFrameToDepthSpace(depthHeight * depthWidth, (UINT16*)pDepthBuffer, colorHeight * colorWidth, pDepthCoordinates);

 

代碼地址:

https://github.com/stone-ch/kinect2-opencv3/tree/master/KinectChangeBackground

沒有上傳工程文件,我使用的環境是:

Kinect SDK v2.0_1409  64位

Opencv3.1.0

VS2013

Win10

 

效果圖:

 

PS:背景圖片是1920 * 1080的,因為Kinect的彩色攝像頭采集到的圖像就是這個尺寸。

需要改進的地方: 平滑人物邊緣,前景背景融合。

 

Reference:

http://blog.csdn.net/column/details/bbdxf-kinectv2.html

http://blog.csdn.net/qq_22033759/article/category/5617829

C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Samples\Native\CoordinateMappingBasics-D2D  Kinect SDK里邊自帶的例子,這是在你電腦上的路徑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM