Hi dige,dige hat geschrieben:Insgesamt habe ich 3 verschiedene Treiber für den Kinect Seonsor gefunden:
- OpenKinect
- PrimeSense
- Codelaboratories
Mit jeden geht was und ne Menge nicht ... es ist eine krux :-\
Hoffentlich kommt wirklich bald das offizielle SDK.
Bin schon auf Dein Bsp. gespannt!
hier ein Bsp. für das normale Kamerabild (die Tiefenbilder kommen noch)
Code: Alles auswählen
; Import-File created by Lib2PBImport
; Libname: CLNUIDevice.lib
; created: 2011/01/16 10:09
ImportC "CLNUIDevice.lib"
; ================================================================
; *Data: .a (1 Byte, 0-255), *camera: void *
; Import(bool) GetNUICameraDepthFrameCorrected8(CLNUICamera cam, PBYTE pData, int waitTimeout = 2000);
GetNUICameraDepthFrameCorrected8.l(*camera, *pData, waitTimeout.l) As "_GetNUICameraDepthFrameCorrected8"
; ================================================================
; *pData: .u (2 Byte, 0-65535)
; Import(bool) GetNUICameraDepthFrameCorrected12(CLNUICamera cam, PUSHORT pData, int waitTimeout = 2000);
GetNUICameraDepthFrameCorrected12.l(*camera, *pData, waitTimeout.l) As "_GetNUICameraDepthFrameCorrected12"
; ================================================================
; *pData: .l (32 Bit unsigned)
; Import(bool) GetNUICameraDepthFrameRGB32(CLNUICamera cam, PDWORD pData, int waitTimeout = 2000);
GetNUICameraDepthFrameRGB32.l(*camera, *pData, waitTimeout.l) As "_GetNUICameraDepthFrameRGB32"
; ================================================================
; *pData: .u (2 Byte, 0-65535)
; Import(bool) GetNUICameraDepthFrameRAW(CLNUICamera cam, PUSHORT pData, int waitTimeout = 2000);
GetNUICameraDepthFrameRAW.l(*camera, *pData, waitTimeout.l) As "_GetNUICameraDepthFrameRAW"
; ================================================================
; *pData: .l (32 Bit unsigned)
; Import(bool) GetNUICameraColorFrameRGB32(CLNUICamera cam, PDWORD pData, int waitTimeout = 2000);
GetNUICameraColorFrameRGB32.l(*camera, *pData, waitTimeout.l) As "_GetNUICameraColorFrameRGB32"
; ================================================================
; *Data: .a (1 Byte, 0-255), *camera: void *
; Import(bool) GetNUICameraColorFrameRGB24(CLNUICamera cam, PBYTE pData, int waitTimeout = 2000);
GetNUICameraColorFrameRGB24.l(*camera, *pData, waitTimeout.l) As "_GetNUICameraColorFrameRGB24"
; ================================================================
; Import(bool) GetNUICameraColorFrameRAW(CLNUICamera cam, PBYTE pData, int waitTimeout = 2000);
GetNUICameraColorFrameRAW.l(*camera, *pData, waitTimeout.l) As "_GetNUICameraColorFrameRAW"
; ================================================================
; Import(bool) StopNUICamera(CLNUICamera cam);
StopNUICamera.l(*camera) As "_StopNUICamera"
; ================================================================
; Import(bool) StartNUICamera(CLNUICamera cam);
StartNUICamera.l(*camera) As "_StartNUICamera"
; ================================================================
; Import(bool) DestroyNUICamera(CLNUICamera cam);
DestroyNUICamera.l(*camera) As "_DestroyNUICamera"
; ================================================================
; Import(CLNUICamera) CreateNUICamera(PCHAR serial);
CreateNUICamera.l(*serial) As "_CreateNUICamera"
; ================================================================
; Import(bool) SetNUIMotorLED(CLNUIMotor mot, BYTE value);
SetNUIMotorLED.l(*motor,value.a ) As "_SetNUIMotorLED"
; ================================================================
; Import(bool) SetNUIMotorPosition(CLNUIMotor mot, SHORT position);
SetNUIMotorPosition.l(*motor,position.w) As "_SetNUIMotorPosition"
; ================================================================
; Import(bool) GetNUIMotorAccelerometer(CLNUIMotor mot, SHORT &x, SHORT &y, SHORT &z);
GetNUIMotorAccelerometer.l(*motor,*x,*y,*z) As "_GetNUIMotorAccelerometer"
; ================================================================
; Import(bool) DestroyNUIMotor(CLNUIMotor mot);
DestroyNUIMotor.l(*motor) As "_DestroyNUIMotor"
; ================================================================
; Import(CLNUIMotor) CreateNUIMotor(PCHAR serial);
CreateNUIMotor.i(*serial) As "_CreateNUIMotor"
; ================================================================
; Import(PCHAR) GetNUIDeviceSerial(int index);
GetNUIDeviceSerial.i(index.l) As "_GetNUIDeviceSerial"
; ================================================================
; Import(int) GetNUIDeviceCount();
GetNUIDeviceCount.l() As "_GetNUIDeviceCount"
; ================================================================
EndImport
*buffer = AllocateMemory(640*480*3)
Define nr.i = GetNUIDeviceCount()
Define serial.s
serial = PeekS(GetNUIDeviceSerial(0))
Define *camera = CreateNUICamera(@serial)
StartNUICamera(*camera)
Define *motor = CreateNUIMotor(@serial)
SetNUIMotorLED(*motor,1)
Delay(1000)
SetNUIMotorLED(*motor,1)
Delay(1000)
SetNUIMotorLED(*motor,1)
Delay(1000)
SetNUIMotorLED(*motor,1)
Delay(1000)
SetNUIMotorLED(*motor,1)
Delay(1000)
#ScreenWidth = 640
#ScreenHeight = 480
If InitSprite() = 0 Or InitKeyboard()=0
MessageRequester("Error","DirectX 7+ is needed.",0)
EndIf
If OpenScreen(#ScreenWidth, #ScreenHeight, 32, "KinectScreen")
Repeat
If StartDrawing(ScreenOutput())
While GetNUICameraColorFrameRGB24(*camera,*buffer,0) = #False
;
Wend
For y=0 To 479
yy=y*3*640
For x=0 To 639
v=yy+(x*3)
v1=v
v2=v+1
v3=v+2
Plot(639-x,y,RGB(PeekA(*buffer+v3),PeekA(*buffer+v2),PeekA(*buffer+v1)))
Next x
Next y
StopDrawing()
EndIf
ExamineKeyboard()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
DestroyNUIMotor(*motor)
StopNUICamera(*camera)
DestroyNUICamera(*camera)
Else
MessageRequester("Error","Can't open the screen !",0)
EndIf
End
cu,
Stevie63
--> added:
Tiefenbild:
(entsprechende Teile austauschen)
Code: Alles auswählen
*buffer32 = AllocateMemory(640*480*4)
Repeat
If StartDrawing(ScreenOutput())
While GetNUICameraDepthFrameRGB32(*camera,*buffer32,0) = #False
;
Wend
For y=0 To 479
yy=y*4*640
For x=0 To 639
v=yy+(x*4)
v1=v
v2=v+1
v3=v+2
v4=v+3
Plot(x,y,RGBA(PeekA(*buffer32+v3),PeekA(*buffer32+v2),PeekA(*buffer32+v1),PeekA(*buffer32+v4)))
Next x
Next y
StopDrawing()
EndIf
ExamineKeyboard()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)