비디오 코덱

OpenCV 설치 및 Cmake 설정 (MacOs)

케케_ 2024. 11. 25. 12:43

비디오 코덱을 학습하기 위해서 VScode에 OpenCV를 다운받아 c++로 예제를 돌려보려고 했다.

검색해 봤을 때, task.json과 c_cpp_properties.json을 수정하는 방법이 많아 이 방법으로 시도했지만, 계속 해서 오류가 났다.

결국 지피티의 도움으로 cmake를 이용해 openCV를 이용하는데 성공했다.

 

우석 혹시 몰라 설치했던 openCV를 삭제했다.

brew uninstall opencv

 

 

Homebrew로 OpenCV 설치

1. Homebrew 업데이트:

brew update

 

2. OpenCV 설치:

 
brew install opencv

 

3. OpenCV 설치 확인:

brew info opencv

 

--> usr/local/Cellar/opencv/4.10.0_12 가 뜸

--> Homebrew를 통해 설치된 OpenCV의 기본 경로입니다. 문제없이 사용 가능합니다!

Homebrew를 사용하면 OpenCV의 파일이 /usr/local/Cellar/opencv에 설치되고, 심볼릭 링크를 통해 /usr/local/include와 /usr/local/lib에서 접근할 수 있도록 설정됩니다.

 

 

VS Code 및 CMake 설정

  1. CMake Tools: VS Code의 CMake Tools 확장을 설치
  2. C++ IntelliSense: C++ 관련 작업을 위한 확장 프로그램도 설치

 

프로젝트 디렉토리 구조

프로젝트를 설정할 디렉토리 만들기

CMakeLists.txt , main.cpp

 

 

CMakeLists.txt 작성

cmake_minimum_required(VERSION 3.10)
project(OpenCVProject)

# C++ 표준 설정
set(CMAKE_CXX_STANDARD 17)

# OpenCV 패키지 찾기
find_package(OpenCV REQUIRED)

# 실행 파일 생성 및 라이브러리 연결
add_executable(main main.cpp)
target_link_libraries(main ${OpenCV_LIBS})

# 헤더 파일 경로 포함
include_directories(${OpenCV_INCLUDE_DIRS})

 

 

main.cpp 예제

#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
    cv::Mat image = cv::imread("test.jpg");
    if (image.empty()) {
        std::cerr << "Could not read the image!" << std::endl;
        return 1;
    }

    cv::imshow("Display window", image);
    cv::waitKey(0); // Wait for a keystroke
    return 0;
}

 

 

 

빌드 및 실행

1. 빌드 디렉토리 생성

CMake는 빌드 파일을 따로 관리 / 프로젝트 폴더에서 빌드 디렉토리를 생성

mkdir build && cd build

 

2. CMake 빌드 설정

cmake ..

 

3. 컴파일 및 실행

cmake --build .
./main

 

 

추가 설정

IntelliSense 설정

c_cpp_properties.json 파일에 OpenCV 헤더 경로를 추가

 

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**",
                "/opt/homebrew/include/opencv4"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "macos-clang-x64"
        }
    ],
    "version": 4
}
 
 
 
 
  • 이미지 파일은 이름만 사용할 경우, build 폴더에 존재해야 잘 돌아 갔음 --> 또는 상대 결로나 정대 경로를 사용하면 됨
  • cmake 사용시 코드를 수정할때마다 빌드를 다시 해줘야 함
    • VS Code CMake Tools을 사용하기 떄문에 fn + f7로 빌드 가능!

 

'비디오 코덱' 카테고리의 다른 글

흑백 이미지 처리의 효율  (1) 2024.11.27
컬러를 흑백으로 변환하기 : cvtColor()  (0) 2024.11.27
imread(), imshow() 사용해보기  (0) 2024.11.27
OpenCV란  (0) 2024.11.27
Cmake에 대해  (1) 2024.11.25