[OpenCV] Xcode에서 OpenCV 사용하기

OpenCV - iOS 첫번째 스텝

서비스 개발을 위해 OpenCV를 Xcode에서 사용하게 될 일이 생겼다. 이것저것 검색을 하며 따라해본 것을 정리할 필요가 생겨 이 포스팅을 한다.

# Step No. 1


1. opencv2.framework 파일을 위 그림의 + 버튼을 누르면 나오는 Add Others.. 버튼을 통해 가져온다.
2. 추가적으로 아래의 라이브러리를 추가해야 한다.
* Accelerate
* CoreFoundation
* CoreMedia
* CoreGraphics
* AssetsLibrary

# Step No. 2

Build Settings에서 Framework Search Paths 항목을 찾아 $(PROJECT_DIR)/를 입력해준다.

# Step No. 3

이제 Wrapper 클래스와 Bridge 헤더를 만들 차례다.
1. Cocoa Touch Class를 선택한다.

  1. Subclass of를 NSObject로 설정하고 Language는 Objective-C로 설정한다.

  2. 아래와 같은 Objectivc-C bridging header를 만들 것이냐는 문구가 나온다. 바로 Create Bridging Header버튼을 클릭해주자.

  3. 3개의 파일이 생성되었다면 성공이다.

# Step No. 4

  1. 위의 만들어진 OpenCVPracticeApp-Bridging-Header.h 파일에 아래의 코드를 써준다.

    #import "OpenCVWrapper.h"
    
  2. OpenCVWrapper.m의 파일명을 OpenCVWrapper.mm으로 변경한다.
    이로 인해 Xcode가 해당 파일을 Objectivec-C++로 인식한다.

# Step No. 5

이제 Prefix Header 파일을 추가할 차례다

  1. PCH File을 추가한다.

  2. 아래 코드를 바로 위에서 만든 PrefixHeader.pch 파일에 입력한다.

#ifdef __cplusplus
#include <opencv2/opencv.hpp>
#endif

위 코드를 아래와 같은 위치에 insert 시킨다.

#ifndef PrefixHeader_pch
#define PrefixHeader_pch

// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.

#ifdef __cplusplus
#include <opencv2/opencv.hpp>
#endif

#endif /* PrefixHeader_pch */
  1. Build Settings에서 Prefix Header를 찾아서 $(SRCROOT)/PrefixHeader.pch을 입력해준다.
    만약 PrefixHeader 파일이 폴더안에 있다면 해당 폴더까지 경로에 추가해줘야 한다.

모든 과정이 끝났다.
제대로 따라했다면 모두 정상 동작할것이다.
테스트를 하려면 OpenCV 버전을 출력하는 코드를 작성해보자.

comments powered by Disqus