📷 0. OpenCV 개발환경 설정

2021. 6. 29. 17:48Summer 2021/Design Project 대비 DIP 세미나

2021-2학기의 디자인프로젝트 준비를 위해 방학부터 연구실을 배정받고 오늘부터 출근하기 시작했다.

나는 영상처리/computer vision 쪽으로의 주제를 잡고 싶어서 마이크로프로세서 관련 수업을 수강했던 영상처리쪽 교수님 연구실로 면담 후 배정받았다.

사실 이쪽 주제로 방향을 잡기 위해서는 전공선택 과목 중에 DIP(Digital Image Processing) 수업을 듣는 것이 좋았는데

나는 지난 학기 실험 과목들 때문에 학점이 남지가 않아서 못 들었다..

그래서 방학 동안 매주 세미나 발표 내용을 정리하려면 출근하는 날이 아니라도 어느 정도씩 혼자 공부하면서 잘 따라가야 할 것 같다.

 

앞으로의 세미나 주제들은 OpenCV(C++)을 통해 구현하도록 제시되었는데,

다른 분들이 대부분 윈도우 + Visual Studio 기반으로 돌리고 계셔서, 나는 별도로 검색해서 Mac OS에 맞도록 개발환경을 구축하기로 했다.

 

검색해 보니 대부분 Mac에서의 OpenCV 개발은 Xcode를 통해 프로젝트를 생성하고 관리하는듯 해서 다시 설치했다. (약 2시간 반 정도 소요)

예전에 Command Line Tool 때문에 쭉 깔아놓고 쓰다가 어느 순간에 용량 확보가 필요해서 지웠었는데,

어차피 앞으로 계속 사용하려면 한번은 깔끔하게 지웠다가 까는 게 낫다고 생각했다.

 

brew install git
brew install opencv
brew install pkg-config

 

homebrew는 이전에 설치를 미리 해놨어서 필요한 패키지들만 추가로 설치했다.

되게 오랜만에 쓰는 김에 brew update, brew upgrade를 돌리니 약 2시간 가까이 열심히 로딩바가 돌아가다가 드디어 완료됐다.

 

pkg-config --cflags --libs /usr/local/Cellar/opencv/4.5.2_4/lib/pkgconfig/opencv4.pc

 

위의 pkg-config 명령어를 통해 xcode 프로젝트 세팅에 사용할 링크 플래그를 추출할 수 있다.

 

다시 xcode 설정으로 돌아와 Command Line Tool로 프로젝트를 생성한다. 

 

ls /usr/local/Cellar/opencv

 

프로젝트를 생성한 직후 Build Settings 탭을 확인하면 Search Paths 하위 항목을 발견할 수 있다.

설치한 opencv 버젼을 위 명령어를 통해 확인한 후, 위와 같이 Header Search Paths 항목에 path를 입력한다.

 

그 다음으로, 위와 같이 Library Search Paths 항목에도 마찬가지로 버젼에 맞게 path를 입력한다.

 

Build Settings 검색창에 other linker를 입력하면 위와 같이 Linking 항목의 Other Linker Flags 하위 항목을 발견할 수 있다.

이 부분에 아까 터미널에서 추출해 놓은 링크 플래그를 그대로 복붙한다.

 

링크 플래그까지 입력한 후에는 상단의 Product>Scheme>Edit Scheme로 이동해 Options 탭의

Use custom working directory를 체크한다. 아래의 링크에는 현재 생성된 main.cpp가 존재하는 경로를 선택한다.

 

여기까지 설정하면 Product 환경 설정은 거의 완료되었다고 할 수 있다...

 

마지막으로 Signing & Capabilities>Hardened Runtime 항목의 Disable Library Validation을 체크한다.

이걸 체크하지 않을 경우 _abort_with_payload 관련 에러가 떠서 당황할 수 있다.

 

성공적으로 컴파일이 수행된 결과이다. 😀

 

---------------------------------------------------

☁️ 참고한 블로그 포스트 ☁️

(https://www.vbflash.net/83)

(https://velog.io/@chy0428/opencv-install-for-mac)