2014년 8월 2일 토요일

Kinect 2 영상을 OpenCV로 변환해 stasm 4.0 minimal 예제에서 작동시켜보기

겪은 어려움 위주로 서술

한 폴더 내 헤더 파일, 소스 파일 인식 불능

프로젝트 마우스 오른쪽 클릭으로 클래스를 생성하면 헤더 파일과 cpp 파일이 프로젝트와 같은 폴더에 생기는데, 

stasm 프로젝트 설정 자체가 프로젝트와 같이 있는 소스, 헤더 파일은 읽지 않도록 되어 있는 것 같아 편법을 사용했다.

프로젝트속성 -> 구성 속성 -> C/C++ -> 일반 -> 추가 포함 디렉터리에

../vc10 을 추가. 그리고 얖에 써있는 opencv 2.4.0 어쩌구 하는 잘못된 경로 삭제.

위의 ../vc10은 그저 나갔다 들어오는 것을 나타낸다.


objdetect.hpp(338): 
error C2589: '(' : '::' 오른쪽에 잘못된 토큰이 있습니다.
error C2059: 구문 오류 : '::'


objdetect.hpp의 전처리 부분에

#ifdef max
#undef max
#undef min
#endif

삽입으로 해결.

Release 속성도 같은 방법으로 해준다.

GrayImage에 대해서 작동하는 Stasm 알고리즘

cv::Mat_<unsigned char> grayImage;

cvtColor(colorImage, grayImage, CV_RGB2GRAY);

이러한 구문을 통해 해결.

결과
openMP도 쓰고 Release 버전에서 돌려도 부드럽게 추적하지는 못함.
이유는 사진용 알고리즘이라 매번 Shape를 다시 던지고 1/16 크기의 화면부터 다시 검색하기 때문이라고 생각됨. Stasm 공부를 깊게 해서 내부 함수를 마음대로 수정할 수 있는 능력이 필요함.

댓글 없음:

댓글 쓰기