cmake를 이용하는 방법과 homebrew를 이용하는 방법 두 가지가 있는데 homebrew가 오래걸리긴 하지만 쉬워서 homebrew를 이용했다.
-
install opencv by brew
~$ brew install opencv3
opencv3을 입력해서 설치했지만 opencv4가 설치되었다.
-
set path
~$ export PATH="/usr/local/opt/opencv@4/bin:$PATH" ~$ export LDFLAGS="-L/usr/local/opt/opencv@4/lib" ~$ export CPPFLAGS="-I/usr/local/opt/opencv@4/include" ~$ export PKG_CONFIG_PATH="/usr/local/opt/opencv@4/lib/pkgconfig"
위를 입력해서 path를 설정해주면 된다.
-
check
~$ pkg-config --modversion opencv4
위를 입력했을 때 version이 나오면 설치가 완료된 것이다.
이런 결과가 나오면 설치 성공!
+) 경로 설정하고 바로 적용이 안돼서 확인 했을 때 버전이 안 나올 수 있다. 그런 경우엔 아래 내용을 터미널에 입력해보자.
~$ source ~/.zshrc
zsh가 아니라 bash를 사용한다면 ~/.bash_profile을 입력하면 될.. 것이다. 아마도….
-
set environment in vscode 이제 vscode의 json파일들을 변경해서 vscode에서 opencv를 사용할 수 있게 해보자.
vscode는 파일 단위로 관리하므로 새로운 폴더을 만들어서 opencv를 쓰는 일종의 프로젝트..?를 만들었다. 그 폴더 안에 .vscode라는 폴더의 json 파일들을 수정했다.
.vscode/c_cpp_properties.json
{ "configurations": [ { "name": "Mac", "includePath": [ "${workspaceFolder}/**", "/usr/bin/clang", "/usr/bin/g++", "/usr/local/Cellar/opencv/4.3.0_3/include/**" ], "defines": [], "macFrameworkPath": [ "/System/Library/Frameworks", "/Library/Frameworks", "${applications ~ framework path}" ], "intelliSenseMode": "clang-x64" } ], "version": 4 }
꼭 이 값을 그대로 넣을 필요는 없고, includePath에
“/usr/local/Cellar/opencv/4.3.0_3/include/**”
와 같이 opencv include 폴더를 경로만 잘 추가하면 된다.(터미널에서 이 경로가 실제로 존재하는지 확인하는 것을 추천한다.)
.vscode/c_cpp_properties.json
{ "version": "2.0.0", "runner": "terminal", "type": "shell", "echoCommand": true, "presentation": { "reveal": "always" }, "tasks": [ { "label": "save and compile for C++", "command": "g++", "args": [ "${file}", "-std=c++11", "-g", "-o", "${fileDirname}/${fileBasenameNoExtension}", "`pkg-config", "--libs", "--cflags", "opencv4`" ], "group": "build", "problemMatcher": { "fileLocation": [ "relative", "${workspaceRoot}" ], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } } ] }
여기서도 task안에 args안에
“`pkg-config”,
”–libs”,
”–cflags”,
“opencv4`”
만 잘 넣으면 된다.
-
use opencv
#include <iostream> #include <opencv2/opencv.hpp> int main(){ cv::Mat img = cv::imread("/path/to/image/image.jpg"); cv::imshow("wow", img); cv::waitKey(0); return 0; }
이렇게 이미지를 불러와서 화면에 띄우는 코드를 짤 수 있다. 이런식으로 사용하기만 하면 끝!