본 실험은..
Kinect SDK v1.0 (2012.2.1) 으로 했기 때문에 약간 이전의 소스와 다를 수 있으며 참고 되는 내용이 다를 수 있음을 명시합니다.
기존의 작업 했던 영상 출력을 다시 바꾸기 위한 시도를 했습니다.
그 와중 바뀐 부분을 먼저 명시 하고 갑니다.
추가 폴더와 lib 폴더를 beta2 위치에서부터 바꿔주고 시작합니다.
포함 폴더 C:\Program Files\Microsoft SDKs\Kinect\v1.0\inc
라이브러리 폴더 C:\Program Files\Microsoft SDKs\Kinect\v1.0\lib\x86
프로젝트 속성에 가면 구성요소 중
폴더가 아니라 디렉터리 로 되어 있네요.
추가해주세요. lib는 amd64 도 있으니 본인 컴퓨터에 맞게끔 해주시기 바랍니다.
또 속성에서 구성 속성 링커 추가종속성에 Kinect10.lib 추가해주세요.
lib 파일이 바뀐게 흐음 예전꺼랑 이름이 많이 바뀌었네요.
그 다음에 가볍게 함수 몇개 소개하고 일단 출력해보도록 하겠습니다.
winapi로 할 것이라서 쫌 다를 수 있네요.
1. NuiInitialize(DWORD dwFlags)
초기화 인데요. 무엇을 쓸 것인지 같이 나열을 해주면 됩니다. 위에 영어로 살짝 나와 있는데 OR 연산을 한다고 하네요.
아 바껴서 AUDIO도 있는데 전 AUDIO를 안할 것이니 넘어가도록 합니다.
아 이렇게 정의가 되있군요 16진수니깐 서로가 서로끼리 영향을 주지 않아서 Bit OR 연산해도 상관없겠네요.
다음과 같이 초기화 해주시면 됩니다.
NuiInitialize(NUI_INITIALIZE_FLAG_USES_COLOR | NUI_INITIALIZE_FLAG_USES_DEPTH );
위 함수로 카메라 데이터를 저장할 때 씁니다.
아규먼트의 정리는 다음과 같습니다.
1) NUI_IMAGE_TYPE eImageType
어떤 타입의 영상을 열 것인가 인데요. 다음 정보와 같이 중요한 부분이라 같이 갑니다.
Beta2랑은 살짝 바뀐게 있어서 살짝 정리하고 갑니다.
NUI_IMAGE_TYPE_COLOR
아 그리고 실험해본 결과 변경된게 하나 더 있었는데,
NUI_IMAGE_TYPE_DEPTH 가 좌우가 반대로 나왔던거에서 이제는 제대로 보이게 나오고요,
NUI_IMAGE_TYPE_DEPTH_AND_PLAYER_INDEX 는 맞는 resolution이 없어서 이제 안쓸꺼 같네요.
왜 아직 남아 있는지는 모르겠고요.
3) DWORD dwImageFrameFlags
5) HANDLE hNextFrameEvent
6) HANDLE phStreamHandle
4. NuiImageStreamGetNextFrame(hStream, dvMillisecondsToWait, **ppcImageFrame)
2)DWORD dwMillisecondsToWait
3)NUI_IMAGE_FRAME** ppcImageFrame
함수는 이정도로 하고요.
KINECT_LOCKED_RECT -> NUI_LOCKED_RECT
중간에 자료형이 바뀐거 하나 있어서 알려드리고 갑니다.
beta버전과 이름이 바뀐 스트럭트네요. 확인해주시고 예전코드 안된다고 하지마세요.ㅎ
다음과 같이 잘 나오고요~
전 잘 나오네요.
다음에는 Skeleton을 띄어보도록 하겠습니다.
중요한건 아닌데..
계속 미루지만 않으면 좋겠네요~ㅎ
Kinect SDK v1.0 (2012.2.1) 으로 했기 때문에 약간 이전의 소스와 다를 수 있으며 참고 되는 내용이 다를 수 있음을 명시합니다.
기존의 작업 했던 영상 출력을 다시 바꾸기 위한 시도를 했습니다.
그 와중 바뀐 부분을 먼저 명시 하고 갑니다.
추가 폴더와 lib 폴더를 beta2 위치에서부터 바꿔주고 시작합니다.
포함 폴더 C:\Program Files\Microsoft SDKs\Kinect\v1.0\inc
라이브러리 폴더 C:\Program Files\Microsoft SDKs\Kinect\v1.0\lib\x86
프로젝트 속성에 가면 구성요소 중
폴더가 아니라 디렉터리 로 되어 있네요.
추가해주세요. lib는 amd64 도 있으니 본인 컴퓨터에 맞게끔 해주시기 바랍니다.
또 속성에서 구성 속성 링커 추가종속성에 Kinect10.lib 추가해주세요.
lib 파일이 바뀐게 흐음 예전꺼랑 이름이 많이 바뀌었네요.
그 다음에 가볍게 함수 몇개 소개하고 일단 출력해보도록 하겠습니다.
winapi로 할 것이라서 쫌 다를 수 있네요.
1. NuiInitialize(DWORD dwFlags)
dwFlags
The subsystems that the application uses, as a bitwise-OR'd combination of the following flags:
NUI_INITIALIZE_FLAG_USES_DEPTH_AND_PLAYER_INDEX
NUI_INITIALIZE_FLAG_USES_COLOR
NUI_INITIALIZE_FLAG_USES_SKELETON
NUI_INITIALIZE_FLAG_USES_DEPTH
초기화 인데요. 무엇을 쓸 것인지 같이 나열을 해주면 됩니다. 위에 영어로 살짝 나와 있는데 OR 연산을 한다고 하네요.
아 바껴서 AUDIO도 있는데 전 AUDIO를 안할 것이니 넘어가도록 합니다.
#define NUI_INITIALIZE_FLAG_USES_DEPTH_AND_PLAYER_INDEX 0x00000001
#define NUI_INITIALIZE_FLAG_USES_COLOR 0x00000002
#define NUI_INITIALIZE_FLAG_USES_SKELETON 0x00000008
#define NUI_INITIALIZE_FLAG_USES_DEPTH 0x00000020 아 이렇게 정의가 되있군요 16진수니깐 서로가 서로끼리 영향을 주지 않아서 Bit OR 연산해도 상관없겠네요.
다음과 같이 초기화 해주시면 됩니다.
NuiInitialize(NUI_INITIALIZE_FLAG_USES_COLOR | NUI_INITIALIZE_FLAG_USES_DEPTH );
2. NuiShutdown()
이 함수는 사용이 끝나고 초기화 해놓은 센서를 종료할 때 씁니다.
3. NuiImageStreamOpen(eImageType, eResolution, dwImageFrameFlags, dwFrameLimit, hNextFrameEvent, *phStreamHandle)
이 함수는 사용이 끝나고 초기화 해놓은 센서를 종료할 때 씁니다.
3. NuiImageStreamOpen(eImageType, eResolution, dwImageFrameFlags, dwFrameLimit, hNextFrameEvent, *phStreamHandle)
위 함수로 카메라 데이터를 저장할 때 씁니다.
아규먼트의 정리는 다음과 같습니다.
1) NUI_IMAGE_TYPE eImageType
NUI_IMAGE_TYPE_COLOR
NUI_IMAGE_TYPE_COLOR_RAW_YUV
NUI_IMAGE_TYPE_COLOR_YUV
NUI_IMAGE_TYPE_DEPTH
NUI_IMAGE_TYPE_DEPTH_AND_PLAYER_INDEX
어떤 타입의 영상을 열 것인가 인데요. 다음 정보와 같이 중요한 부분이라 같이 갑니다.
2) NUI_IMAGE_RESOLUTION eResolution
NUI_IMAGE_RESOLUTION_80x60
NUI_IMAGE_RESOLUTION_320x240
NUI_IMAGE_RESOLUTION_640x480
NUI_IMAGE_RESOLUTION_1280x960 // beta2 에선 1280x1024 였습니다.
NUI_IMAGE_TYPE_COLOR
NUI_IMAGE_RESOULUTION_1280x960
NUI_IMAGE_RESOULUTION_640x480
NUI_IMAGE_TYPE_COLOR_RAW_YUV
NUI_IMAGE_RESOULUTION_640x480
NUI_IMAGE_TYPE_COLOR_YUV
NUI_IMAGE_RESOULUTION_640x480
NUI_IMAGE_TYPE_DEPTH
NUI_IMAGE_RESOULUTION_640x480
NUI_IMAGE_RESOULUTION_320x240
NUI_IMAGE_RESOULUTION_80x60
NUI_IMAGE_TYPE_DEPTH_AND_PLAYER_INDEX
x
아 그리고 실험해본 결과 변경된게 하나 더 있었는데,
NUI_IMAGE_TYPE_DEPTH 가 좌우가 반대로 나왔던거에서 이제는 제대로 보이게 나오고요,
NUI_IMAGE_TYPE_DEPTH_AND_PLAYER_INDEX 는 맞는 resolution이 없어서 이제 안쓸꺼 같네요.
왜 아직 남아 있는지는 모르겠고요.
3) DWORD dwImageFrameFlags
이전 버전에선 사용하지 않음이 붙어 있었는데 현재 버전에선 그 단어가 떨어졌네요.
그래도 예저에선 0으로 놓고 넘어갔습니다.
그래도 예저에선 0으로 놓고 넘어갔습니다.
4) DWORD dwFrameLimit
NUI 실행시간에 가질 수 있는 최대 프레임 수
기본 값은 최대 4 이지만 보통 2를 사용
5) HANDLE hNextFrameEvent
Kinect로 다음 영상을 받을 이벤트 생성. 모든 설정 리셋
6) HANDLE phStreamHandle
영상 데이터를 받을 때 사용하는 핸들
4. NuiImageStreamGetNextFrame(hStream, dvMillisecondsToWait, **ppcImageFrame)
다음 영상을 지정된 시간 이후로 값을 가져옵니다.
1)HANDLE hStream
1)HANDLE hStream
NuiImageStreamOpen에 의해 만들어진 이미지 스트림 핸들.
2)DWORD dwMillisecondsToWait
새로운 frame을 기다리는 시간(ms).
3)NUI_IMAGE_FRAME** ppcImageFrame
데이터를받을 NUI_IMAGE_FRAME 구조에 대한 포인터.
함수는 이정도로 하고요.
KINECT_LOCKED_RECT -> NUI_LOCKED_RECT
중간에 자료형이 바뀐거 하나 있어서 알려드리고 갑니다.
beta버전과 이름이 바뀐 스트럭트네요. 확인해주시고 예전코드 안된다고 하지마세요.ㅎ
다음과 같이 잘 나오고요~
전 잘 나오네요.
다음에는 Skeleton을 띄어보도록 하겠습니다.
중요한건 아닌데..
계속 미루지만 않으면 좋겠네요~ㅎ
'Out of Mind > Kinect' 카테고리의 다른 글
Depth 영상 값의 추정. (1) | 2012.02.03 |
---|---|
v1.0 Beta2 -> v1.0 바뀐부분 정리 (0) | 2012.02.02 |
2. Kinect Install (0) | 2012.02.02 |
1. Kinect Introduce (0) | 2012.01.18 |
Kinect에 대한 짧은 소개 (0) | 2012.01.04 |