처음에 OpenCV 2.0 빌드라고 잘못 제목을 적었으나, 결국 1.1 재설치로 밝혀짐 ㅜㅜ
프로그램 → OpenCV → OpenCV Workspace MSVC6를 열어 batch build 하면 된다고 하나 빌드 중에 VC6가 멈춘다.
VC6 자체가 맛이 간 것 같아서 일단 VC6 SP5를 깔고...
그 다음은 순차대로 전부 빌드.
cvd.lib와 cxcored.lib 등은 배치 빌드 과정에서 생성되었고,
highguid.lib 빌드
libjasperd.lib 빌드 (C:\Program Files\OpenCV\otherlibs\_graphics\src\libjasper)
마찬가지로 libjpegd.lib, libpngd.lib, libtiffd.lib, zlibd.lib를 빌드.
빌드는 모두 VC6만 사용했고, 일단 잘 되는 것 같다.
그런데...
원래 있던 facedetect 데모가 실행이 안 된다.
highgui110.dll이 없단다. 아마 아까 배치빌드 과정에서 버전 충돌로 파일 몇 개를 지웠는데, 그 안 에 포함됐나보다.
어쩔 수 없이 C:\Program Files\OpenCV\otherlibs\highgui에 있는 highgui 프로젝트를 다시 열어서 active configuration을 release로 바꿔서 컴파일 - 에러. 아까의 잡 프로젝트들을 전부 다시 컴파일해줘야 한다.
libjasper, libjpeg, libpng, libtiff, zlib를 모두 release로 빌드하고 다시 highgui.lib를 빌드 - 성공.
그런데 facedetect.c 내용을 복사해서 빌드한 테스트 프로젝트는 실행이 되지 않길래 보니...
의외로 classifier 관련하여 xml 파일을 불러오는 부분이 있었다.
아마도 Haar feature로 cascade를 구성하기 위한 데이터가 들어있는 듯하다. 자세한 내용은 조사할 시간이 업ㅂ다!~~
매뉴얼 일부 발췌:
The whole hierarchy can be constructed manually or loaded from a file using functions cvLoadHaarClassifierCascade or cvLoad.
해당 폴더 설명:
haarcascades - the folder contains trained classifiers for detecting objects
of a particular type, e.g. faces (frontal, profile), pedestrians etc.
Some of the classifiers have a special license - please,
look into the files for details.
오오... 다른 것도 있다. 예제에서는 haarcascade_frontalface_alt.xml과 haarcascade_eye_tree_eyeglasses.xml 두 개가 사용됨.
어쨌든, 결과는 나쁘지 않다.
이는 다음과 같이 정의돼있는데, 굵게 표시한 글자깨진 부분이 문제이므로 수정하자.
typedef struct CvBGStatModel
{
CV_BG_STAT_MODEL_FIELDS();
}
CvBGStatModel;
opencv를 이용한 최소 캡처 프로젝트를 첨부하니 잘 활용하도록 하자!