-
X code 에서 Open CV 환경 만들기.Computer Vision 2020. 7. 25. 02:52
영상 처리 공부하다가 Open CV 실습을 해야해서 환경 셋팅을 했다.
Max os 환경에 Open CV 설치해서 X code 에서 c++ 로 Open CV 다루기.
1. Homebrew 통해서 Open CV 패키지 설치.
2. Xcode에 Open CV 라이브러리 링크.
Homebrew 설치
사이트에 있는 스크립트를 복사해서 터미널에서 실행시킨다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Password 입력하고 기다리면 설치가 된다.
Homebrew 이용해서 Open CV 설치
터미널에
brew install opencv
라고 입력하고 엔터.
시간이 꽤 걸린다.
pkg-config 설치 & 링커 플래그 추출
brew install pkg-config
설치 후, 링커 플래그 추출
pkg-cofig --cflags --libs opencv4
opencv 뒤에 숫자는 설치되는 버전별로 다르다.
나는 최근에 설치했으므로 가장 최근 버전인 4를 적었다.
이렇게 주르륵 링크 플래그들이 나온다.
X code에서 Open CV 참조
프로젝트 생성할 때 마다 Open CV 를 참조시켜 줘야한다.
프로젝트가 빌드되면 Build Setting에 들어간다.
(1) " Header Search Path " 검색 후
오른쪽 빈칸에 더블클릭하여
/usr/local/include /usr/local/include/opencv4
붙여넣기 하고 엔터.
(2) " Library Search Path" 검색 후
마찬가지로 오른쪽 빈칸에
/usr/local/lib
붙여넣기 후 엔터
(3) "Other Linker Flags" 검색 후
오른 쪽 빈칸에
-I/usr/local/Cellar/opencv/4.3.0_5/include/opencv4/opencv -I/usr/local/Cellar/opencv/4.3.0_5/include/opencv4 -L/usr/local/Cellar/opencv/4.3.0_5/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_highgui -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_sfm -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core
터미널에서 추출한 플래그들을 붙여넣기 후 엔터.
Open CV C++ 로 사용해 보기.
위의 과정을 다 거친 후, Open CV를 사용하기 위해 헤더에
#include <opencv2/opencv.hpp> using namespace cv;
입력해주면 문제없이 사용할 수 있다.
간단하게 이미지를 불러오는 코드
#include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> using namespace std; using namespace cv; int main() { Mat origin, gray; origin = imread("colosseum.jpg", IMREAD_COLOR); gray = imread("colosseum.jpg", IMREAD_GRAYSCALE); if(origin.empty()){ cout<<"Could not open or find the Image"<<endl; return -1; } imshow("Original", origin); imshow("Gray", gray); waitKey(0); return 0; }
(+) 이미지를 사용하기 위해서 이미지를 가지고 있는 디렉토리를 연결 시켜줘야한다.
Product - Scheme - Edit Schem ( cmd + < )
Working Directory 에서 Use custom working directory를 체크하고 해당 디렉토리를 설정해준다.
코드 실행 결과
(+)
Open CV는 몇몇 라이브러리를 포함하는 패키지 형태의 모듈 구조를 가진다.
대표적으로 Core, imgproc, video, calib3d, feature2d, objdetect, highgui, gpu 가 있다.
- Core : 기본적인 데이터 구조를 가진다. 예를 들어 영상 및 행렬의 값들을 저장할 수 있는 배열 mat을 가지고 있고, 그와 관련되어 기본적인 함수를 제공한다. (opencv.hpp 에 다 포함되는 것 같다. )
- imgproc : 선형, 비선형 영상 필터링을 포함한 영상 처리 모듈이다. 기하적인 영상의 변형, 컬러 공간 변환, 히스토그래뫄 관련된 처리 등을 할 수 있는 기본적인 영상 처리 함수를 제공한다.
- video : 비디오 분석 모듈로써 움직임 추정, 전 후경 분리, 물체 추적 알고리즘 등을 가지고 있다.
- calib3d : 기본적인 멀티 뷰 기하학 알고리즘과 단일 및 스테레오 카메라 calibration, 물체 동착 추정, 스테레오 관련 알고리즘, 3D 구성요소를 제공하는 모듈이다.
- feature2d : SIFT, SURF, MSER 등과 같은 영상의 특징점 탐지 기능, 그것의 기술자와 각 특징의 매칭 등과 같이 영상의 특징 추출과 관련된 기능을 가진 모듈이다.
- objdetect : 미리 정의된 종류(얼굴, 눈, 사람, 자동차)를 구별하는 물체 탐지와 고나련된 모듈이다.
- highgui : 비디오 캡처, 영상 및 비디오 코덱등을 제공하여 간단한 UI을 제공하는 모듈이다.
- gpu : 여러 OpenCV 모듈을 GPU를 사용해서 알고리즘을 고속화 시키는 모듈이다.
더보기참고한 블로그 dgrld.tistory.com/34
'Computer Vision' 카테고리의 다른 글
[The Core Functionality] Mask Operations on Matices (0) 2020.07.25 [The Core Functionality] How to scan Images, Lookup tables with Open CV (0) 2020.07.25 [Introduction to OpenCV] Load, Modify, and Save an Image (0) 2020.07.25 [ Introduction to OpenCV ] Load and Display an Image (0) 2020.07.25 [The Core Functionality] Mat - The Basic Image Container (0) 2020.07.25