[c++] opencv 불러와서 써보기!

About_work·2024년 10월 16일
0

c++

목록 보기
11/17
  • C++에서는 Python의 pip install과 같은 간편한 방법이 없지만, 대신 패키지 매니저CMake로 외부 라이브러리를 관리할 수 있어.
  • OpenCV 같은 라이브러리를 C++ 프로젝트에 추가하는 가장 일반적인 방법은 CMake를 이용한 의존성 관리야.
  • 지금부터 OpenCV를 계산기 프로젝트에 포함시키고, 빌드하고, 사용하기까지의 단계별 안내를 해줄게!

1. 목표

  • OpenCV를 현재 계산기 C++ 프로젝트에 가져와서, 계산 결과를 이미지로 보여주기.
  • OpenCV를 CMake를 이용해 관리하고, GitHub 레포와 연동.

실천 단계

1. OpenCV 설치

먼저 OpenCV를 로컬에 설치해야 해. 아래 단계에 따라 OpenCV를 다운로드하고 빌드해보자.

1.1. OpenCV 다운로드

# 프로젝트 디렉토리 이동
cd ~/your-calculator-repo

# external 폴더 생성 후 OpenCV 레포를 클론
mkdir external
cd external
git clone https://github.com/opencv/opencv.git

1.2. OpenCV 빌드 및 설치

cd opencv
mkdir build
cd build

# CMake를 이용해 OpenCV를 빌드할 준비
cmake ..

# OpenCV 빌드 (시간이 조금 걸릴 수 있음)
make -j$(nproc)

# 빌드 완료 후 설치
sudo make install

make install


2. OpenCV를 CMake로 프로젝트에 추가

2.1. CMakeLists.txt 수정

프로젝트의 CMakeLists.txt 파일에 OpenCV를 찾고 포함할 수 있도록 다음 내용을 추가해.

cmake_minimum_required(VERSION 3.10)

# 프로젝트 이름 설정
project(Calculator)

# C++ 표준 설정
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# OpenCV 라이브러리 찾기
find_package(OpenCV REQUIRED)

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

# 소스 파일 지정 및 실행 파일 생성
add_executable(calculator src/main.cpp src/Calculator.cpp)

# OpenCV 라이브러리 링크
target_link_libraries(calculator ${OpenCV_LIBS})

3. OpenCV를 이용해 계산 결과를 이미지로 표시

3.1. src/Calculator.cpp 수정

아래처럼 OpenCV 라이브러리를 활용하여 계산 결과를 이미지로 표시하는 코드를 추가해보자.

#include "Calculator.h"
#include <opencv2/opencv.hpp>
#include <iostream>

int Calculator::add(int a, int b) {
    return a + b;
}

int Calculator::subtract(int a, int b) {
    return a - b;
}

int Calculator::multiply(int a, int b) {
    return a * b;
}

int Calculator::divide(int a, int b) {
    if (b == 0) {
        std::cerr << "Division by zero error!" << std::endl;
        return 0;
    }
    return a / b;
}

void Calculator::displayResult(int result) {
    // OpenCV를 이용해 결과를 이미지로 표시
    cv::Mat image(400, 400, CV_8UC3, cv::Scalar(255, 255, 255));
    std::string text = "Result: " + std::to_string(result);

    // 이미지에 텍스트 표시
    cv::putText(image, text, cv::Point(50, 200), cv::FONT_HERSHEY_SIMPLEX, 1, cv::Scalar(0, 0, 0), 2);

    // 이미지 창 표시
    cv::imshow("Calculator Result", image);
    cv::waitKey(0); // 아무 키나 누르면 창 닫기
}
  • 이 코드는 OpenCV를 사용해 계산 결과를 이미지로 표시하는 예제야. displayResult 함수가 OpenCV를 이용해 텍스트를 이미지에 렌더링하고 보여줘.

3.2. include/Calculator.h 수정

헤더 파일에 displayResult 함수 선언을 추가해줘.

#ifndef CALCULATOR_H
#define CALCULATOR_H

class Calculator {
public:
    int add(int a, int b);
    int subtract(int a, int b);
    int multiply(int a, int b);
    int divide(int a, int b);
    void displayResult(int result);  // 새로 추가된 함수
};

#endif // CALCULATOR_H

4. 메인 프로그램에서 OpenCV 함수 호출

4.1. src/main.cpp 수정

계산기 결과를 이미지로 표시하기 위해 아래처럼 코드를 수정하자.

#include "Calculator.h"
#include <iostream>

int main() {
    Calculator calc;

    int a, b;
    char operation;

    std::cout << "Enter first number: ";
    std::cin >> a;
    std::cout << "Enter operation (+, -, *, /): ";
    std::cin >> operation;
    std::cout << "Enter second number: ";
    std::cin >> b;

    int result;
    switch (operation) {
        case '+':
            result = calc.add(a, b);
            break;
        case '-':
            result = calc.subtract(a, b);
            break;
        case '*':
            result = calc.multiply(a, b);
            break;
        case '/':
            result = calc.divide(a, b);
            break;
        default:
            std::cerr << "Invalid operation!" << std::endl;
            return 1;
    }

    std::cout << "Result: " << result << std::endl;

    // 계산 결과를 이미지로 표시
    calc.displayResult(result);

    return 0;
}

5. 프로젝트 빌드 및 실행

  1. 빌드 디렉토리 생성 및 이동

    mkdir build
    cd build
  2. CMake 실행

    cmake ..
  3. 프로젝트 빌드

    make
  4. 프로그램 실행

    ./calculator

6. 테스트

  • 프로그램을 실행한 후 두 숫자와 연산자를 입력하면 결과가 터미널과 이미지 창에 동시에 표시돼.

profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글