mingw-w64 설치하기
컴파일러란 C++에서 작성된 기계어를 즉시실행될수 있는 령태의 프로그램으로 바꾸어주는 번역프로그램이다.
c++ 컴파일러를 위해 mingw-w64를 설치.
https://sourceforge.net/projects/mingw-w64/files/
설정
설치진행 시 위와 같은 에러가 발생한다면 압축파일을 직접 다운받은 후 환경변수를 설정해 줍니다.
설치 된 압축파일을 C:\Program Files (x86)에 압축을 풀고 환경변수 설정을 합니다.
명령프롬포트를 실행하여 설치가 되었는지 확인한다.
OpenCV 설치
https://github.com/opencv/opencv/releases
마지막 릴리즈 버전을 설치 합니다.
opencv contrib 설치
opencv contrib 는 같은 버전으로 받아줍니다.
https://github.com/opencv/opencv_contrib/releases
두개의 압축파일을 풀어서 OpenCV폴더에 넣어줍니다.
폴더의 이름은 알아서 정해주면 됩니다.
cmake 설치
CMake는 C 프로젝트를 빌드하기 위한 Makefile을 보다 쉽고 편리하게 작성할 수 있는 툴이다
cmake로 빌드 하기
소스코드의 위치는 OpenCV폴더의 opencv-4.7.0로 설정하고 빌드 폴더는 OpenCV폴더에 build폴더를 생성하여 설정해줍니다.
Configure는 MinGW Makefiles로 설정합니다.
완료가 되면 아래와 같이 출력이 되는데 빌요없는건 체크를 해제해 줍니다.
java 등 해지를 하는 이유는 빌드시 시간, 공간을 절약하기 위함 입니다.
java 해제
directx 해제
opencl
체크를 위와 같이 해제한 후 configure을 해줍니다.
search에 extra를 입력하여 미리 받은 opencv_contrib-4.7.0\modules 경로를 지정한다.
opencv 기능을 사용하기 위함이며. module의 경로는 "OpenCV\opencv_contrib-4.7.0\modules"
경로를 지정한 후 configure을 해준다
아래와 같이 "world" "nonfree"의 체크박스를 선택한다
완료 후 configure을 해준다.
install을 검색하여 빌드가 저장되는 폴더의 위치를 지정한다.
최종적으로 빌드되는 폴더를 만들어 지정하였다.
완료후 Generate를 누른 후 완료가 되면 build 폴더에 빌드한 파일들이 생성 됨.
명령 프롬포트를 연다.
build 폴더로 이동하여 아래와 같이 입력하면 빌드가 시작된다.
mingw32-make
완료 후 아래와 같이 입력한다.
mingw32-make install
이 작업이 끝나면 mingw_build 폴더 안에 파일들이 생성된다.
VS Code 설정
extension에서 C/C++ Extension Pack을 설치한다
파일생성
workspace라는 폴더를 만들어준 후 VS Code에서 file- open folder를 클릭하여 workspace폴더를 열어준다.
키보드 F1 -> Tasks Configure Task -> Create tasks.json file from template -> Others를 선택하여 tasks.json을 생성한다.
tasks.json은 아래 내용으로 작성한다.
{
"version": "2.0.0",
"runner": "terminal",
"type": "shell",
"echoCommand": true,
"presentation" : { "reveal": "always" },
"tasks": [
{
"label": "compile for C++",
"command": "cd ${fileDirname} && cmake . -G \"MinGW Makefiles\" && mingw32-make",
"group": "build",
"problemMatcher": {
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"label": "execute",
"command": "cmd",
"group": "test",
"args": [
"/C", "${fileDirname}\\${workspaceFolderBasename}"
]
}
]
}
빌드, 실행을 위한 단축키 설정
Keybinding.json에서 아래와 같이 내용을 교체한다.
ctrl+u를 빌드, ctrl+r를 실행으로 설정했으며 변경이 가능하다.
[
{ "key": "ctrl+alt+u", "command": "workbench.action.tasks.build" },
{ "key": "ctrl+alt+r", "command": "workbench.action.tasks.test" }
]
폴더에 CMakeLists.txt파일을 생성 후 아래 내용을 작성한다.
set(pathOPENCV C:/opencv-mingw/build)에는 cmake에서 지정한 바이너리 경로
set(LIBOPENCV ${pathOPENCV}/x64/mingw/lib/libopencv_world470.dll.a)의 470은 opencv 버전을 입력한다.
cmake_minimum_required(VERSION 2.8)
set(pathOPENCV D:/OpenCV/mingw_build)
include_directories(${pathOPENCV}/include)
set(LIBOPENCV ${pathOPENCV}/x64/mingw/lib/libopencv_world470.dll.a)
get_filename_component(ProjectId ${CMAKE_CURRENT_LIST_DIR} NAME)
string(REPLACE " " "_" ProjectId ${ProjectId})
project(${ProjectId} C CXX)
set (CMAKE_CXX_STANDARD 11)
file(GLOB SOURCES *.cpp)
add_executable(${PROJECT_NAME} ${SOURCES} )
target_link_libraries( ${PROJECT_NAME} ${LIBOPENCV} )
main.cpp파일 생성후 다음과 같이 작성한다.
#include "opencv2/opencv.hpp"
#include<iostream>
#include<stdio.h>
using namespace std;
int main(int arg, char** argu) {
cv::Mat img = cv::imread("test.jpg");
imshow("img", img);
cv::waitKey(0);
return 0;
}
이미지를 불러오는 소스코딩이며, 이미지는 테스트 이미지를 사용함.
path 파일을 추가한다.
빨간색 밑줄에 커서를 가져가면 하단에 전구모양을 클릭.
include path에 D:\OpenCV\mingw_build\include폴더를 넣어준다.
컴파일시 아래의 에러 발생시 Ctrl + Shift + P를 누른 후 아래의 그림과 같이 진행한다..
이후 다시 빌드를 진행하면 정상적으로 빌드 되는것을 확인할수 있다.
'Open CV' 카테고리의 다른 글
opencv c++ 블러링필터 적용하기 - 평균화, 가우시안 필터 (0) | 2023.01.13 |
---|---|
opencv c++ gray scale, HSV scale 적용하기 (0) | 2023.01.13 |
xcode c++ cURL 사용법 (0) | 2023.01.13 |
OPENCV C++ 스트리밍 영상 출력하기 (0) | 2023.01.12 |
맥OS Xcode OpenCV 설정[C++] (1) | 2023.01.06 |