kienct -color
生活随笔
收集整理的這篇文章主要介紹了
kienct -color
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
#include?<Windows.h> #include?<Ole2.h> #include?<gl/GL.h> #include?<gl/GLU.h> #include?<gl/glut.h> #include?<NuiApi.h> #include?<NuiImageCamera.h> #include?<NuiSensor.h> #define?width?640 #define?height?480 //?OpenGL?Variables GLuint?textureId; GLubyte?data[width*height*4]; //?Kinect?variables HANDLE?rgbStream; INuiSensor*?sensor; void?draw(void); bool?init(int?argc,?char*?argv[])?{glutInit(&argc,?argv);glutInitDisplayMode(GLUT_DEPTH?|?GLUT_DOUBLE?|?GLUT_RGBA);glutInitWindowSize(width,height);glutCreateWindow("Kinect?SDK?Tutorial");glutDisplayFunc(draw); glutIdleFunc(draw);return?true; } bool?initKinect()?{ //?Get?a?working?kinect?sensor int?numSensors; if?(NuiGetSensorCount(&numSensors)?<?0?||?numSensors?<?1)?return?false; if?(NuiCreateSensorByIndex(0,?&sensor)?<?0)?return?false; //?Initialize?sensor sensor->NuiInitialize(NUI_INITIALIZE_FLAG_USES_DEPTH?|?NUI_INITIALIZE_FLAG_USES_COLOR); sensor->NuiImageStreamOpen(NUI_IMAGE_TYPE_COLOR,?//?Depth?camera?or?rgb?camera? NUI_IMAGE_RESOLUTION_640x480,????//?Image?resolution 0,//?Image?stream?flags,?e.g.?near?mode 2,//?Number?of?frames?to?buffer NULL,???//?Event?handle &rgbStream); return?sensor; } void?getKinectData(GLubyte*?dest)?{ NUI_IMAGE_FRAME?imageFrame; NUI_LOCKED_RECT?LockedRect; if?(sensor->NuiImageStreamGetNextFrame(rgbStream,?0,?&imageFrame)?<?0)?return; INuiFrameTexture*?texture?=?imageFrame.pFrameTexture;texture->LockRect(0,?&LockedRect,?NULL,?0);if?(LockedRect.Pitch?!=?0){const?BYTE*?curr?=?(const?BYTE*)?LockedRect.pBits;const?BYTE*?dataEnd?=?curr?+?(width*height)*4; while?(curr?<?dataEnd)?{ *dest++?=?*curr++; }}texture->UnlockRect(0);sensor->NuiImageStreamReleaseFrame(rgbStream,?&imageFrame); } void?drawKinectData()?{ glBindTexture(GL_TEXTURE_2D,?textureId); getKinectData(data); glTexSubImage2D(GL_TEXTURE_2D,?0,?0,?0,?width,?height,?GL_BGRA_EXT,?GL_UNSIGNED_BYTE,?(GLvoid*)data); glClear(GL_COLOR_BUFFER_BIT?|?GL_DEPTH_BUFFER_BIT); glBegin(GL_QUADS); glTexCoord2f(0.0f,?0.0f); glVertex3f(0,?0,?0); glTexCoord2f(1.0f,?0.0f); glVertex3f(width,?0,?0); glTexCoord2f(1.0f,?1.0f); glVertex3f(width,?height,?0.0f); glTexCoord2f(0.0f,?1.0f); glVertex3f(0,?height,?0.0f);glEnd(); } void?draw()?{drawKinectData();glutSwapBuffers(); } void?execute()?{glutMainLoop(); } int?main(int?argc,?char*?argv[])?{ if?(!init(argc,?argv))?return?1; if?(!initKinect())?return?1;//?Initialize?textures glGenTextures(1,?&textureId); glBindTexture(GL_TEXTURE_2D,?textureId);glTexParameteri(GL_TEXTURE_2D,?GL_TEXTURE_MIN_FILTER,?GL_NEAREST);glTexParameteri(GL_TEXTURE_2D,?GL_TEXTURE_MAG_FILTER,?GL_NEAREST);glTexImage2D(GL_TEXTURE_2D,?0,?GL_RGBA8,?width,?height,?0,?GL_BGRA_EXT,?GL_UNSIGNED_BYTE,?(GLvoid*)?data);glBindTexture(GL_TEXTURE_2D,?0);//?OpenGL?setup glClearColor(0,0,0,0); glClearDepth(1.0f); glEnable(GL_TEXTURE_2D);//?Camera?setup glViewport(0,?0,?width,?height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0,?width,?height,?0,?1,?-1); glMatrixMode(GL_MODELVIEW); glLoadIdentity();//?Main?loopexecute(); return?0; }轉載于:https://my.oschina.net/gujianhan/blog/212460
總結
以上是生活随笔為你收集整理的kienct -color的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django中static media
- 下一篇: 刷题03