[팁] OpenCV 1.0.0 Frameworks
-
- 첨부파일 : opencv_1.0.0_Mac_OSX.zip (11.6M) - 다운로드
본문
물론 1.0.0 을 그대로 command-line 으로 컴파일해도 프로그램은 만들 수 있습니다만, 이왕이면 Xcode 에서 편하게 프로그램을 작성하고 싶으신 분들이 쓰시면 유용할 듯 싶습니다.
일단 파일을 받으신 후 압축을 풀고 디렉토리 안을 보시면 OSX 디렉토리가 있을 것입니다. 그 안에는 다섯 개의 서브 디렉토리가 있습니다. 다음과 같은 순서로 build 하세요.
cxcore
cv
cvaux
highgui
cv 는 cxcore 를 참조하며, cvaux 는 cv 와 cxcore 를 참조하며... 이렇게 되어 있으므로 빌드 순서가 위와 같아야 합니다.
한 프로젝트로 만들면 간편하긴 하겠지만, 소스를 살펴보니 include 파일의 path 가 약간 relax 하게 되어 있어서 디버깅을 위해서 일부러 프로젝트를 나누었습니다. 어차피 한 번 빌드하고 나면 향후에는 Framework 만 참조하면 되기 때문에 번거로움은 한 번으로 끝입니다. -_-; (그리고 이 부분이 Apple 의 기술 문서에서 소개하는 Open Source 소프트웨어 포팅법과, portability 를 중시하는 제 방법의 차이이기도 합니다. ^^;)
일단 올려놓은 프로젝트에는 최적화 관련 플래그를 설정하지 않았습니다. 필요하신 분들은 따로 Build 옵션에서 최적화를 선택하시면 되겠습니다.
컴파일이 다 끝나면 각각의 디렉토리에는 Build/Release 디렉토리가 생성되며, 그 안에 cxcore.Framework, cv.Framework... 등의 프레임웍 디렉토리가 생성됩니다.
샘플 프로젝트에는 OpenCV 에서 제공하는 샘플 중의 일부를 포팅해 놓았습니다.
위의 OpenCV Framework 은 embedded 방식을 위해 맞추어 놓은 것입니다. 이렇게 하면 Framework 을 Application 번들 내에 내장하게 되므로 따로 Framework 을 컴퓨터마다 설치할 필요가 없어서 휴대성이 높고 깔끔하게 정리할 수 있습니다. Framework 은 기본적으로 dynamic library 입니다. Framework 이 컴파일시 지정된 올바른 위치에 놓이지 않으면 라이브러리를 참조할 수 없으므로 image not found 오류를 발생하게 됩니다.
위의 Framework 으로 OpenCV 프로그램을 작성할 시에는 다음과 같은 과정이 더 필요합니다.
1. 프로젝트 윈도우에서 Target 을 열어 실행모듈을 선택합니다.
2. Project 메뉴에서 New Build Phase->New Copy Files Build Phase 를 선택합니다.
3. 대화창에서 Framework 을 선택하고
4. 생성된 Copy Files 항목에 프로젝트에 include 한 OpenCV Frameworks 들을 드래그 해 넣습니다.
이렇게 하면 App 내에 Framework 이 같이 복사되어 들어갑니다.
Framework 프로젝트에서는 이 프레임웍이 App 디렉토리 내에서 호출될 것을 미리 설정해 놓아야 합니다. 이것은 Inspector 윈도우의 두 번째 탭인 Build 에서 Installation Location 옵션에 @executable_path/../Frameworks 을 넣으면 됩니다. 기본값은 /Users/아이디/Library/Frameworks 입니다.
자세한 사항은 첨부된 프로젝트 파일을 살펴보세요. ^^
최신글이 없습니다.
최신글이 없습니다.
댓글목록 5
wlee님의 댓글
앗, 이런 훌륭한 일을 하시다니.. 이거 웹에 올려서 OpenCV 커뮤니티에 널리 알려야 하는게 아닐까요 ㅎㅎㅎ
wlee님의 댓글
그런데 테스트 하신 소스는 OpenCV-1.0.0인지요 아니면 CVS에서 가져온 것인지요 ?
wlee님의 댓글
에고.. 계속 질문만 올리네요.
방금 테스트 해 보니
"위의 Framework 으로 OpenCV 프로그램을 작성할 시에는 다음과 같은 과정이 더 필요합니다." 에서 말씀하신 1-4 의 과정이 없어도 빌드가 되고 실행은 되는 것 같습니다. 이 과정이 꼭 필요한 것은 아닌가요 ? ?
hongjuny님의 댓글
저 위의 네 과정은 엑스코드에서 새 프로젝트를 개설할 때 필요한 과정을 요약한 것입니다. ^^ 동봉한 샘플 프로젝트에는 위의 네 과정이 이미 처리되어 있는 것이지요. 참고하시라고 올린 것입니다.
그리고 저도 어차피 그럴듯한 비젼/이미지 프로세싱 라이브러리는 도움이 되니까요. 그래서 일부러 열심을 부려 보았습니다. ^^ 오히려 제가 감사하다고 말씀드려야 할 처지죠. ㅎㅎ
egregory님의 댓글
저는 요새 macam으로 cocoa에 붙히는 짓을 하는중인데...