[c++] 동영상 파일에서 특정 색상 추출하기

동영상 파일에서 특정 색상을 추출하고 싶다면, OpenCV 라이브러리를 사용하여 C++로 간단하게 작성할 수 있습니다. 이 라이브러리는 이미지 및 동영상 처리에 매우 유용합니다.

OpenCV 설치

먼저 OpenCV를 설치해야 합니다. 다음 명령어로 OpenCV를 설치할 수 있습니다:

sudo apt install libopencv-dev

또는 다른 방법으로 OpenCV를 설치할 수 있습니다.

색상 추출 알고리즘

동영상 파일에서 특정 색상을 추출하는 알고리즘을 요약하면 다음과 같습니다:

  1. 동영상 파일을 읽어옵니다.
  2. 각 프레임마다 색상 공간을 변환합니다. (보통 RGB에서 HSV로 변환합니다)
  3. 변환된 이미지에서 특정 색상에 해당하는 픽셀을 추출합니다.
  4. 추출된 픽셀을 새로운 이미지에 추가합니다.

색상 추출하는 C++ 코드

간단한 예제 코드로 색상을 추출하는 C++ 코드는 다음과 같습니다:

#include <opencv2/opencv.hpp>

int main() {
    cv::VideoCapture cap("input_video.mp4");

    if (!cap.isOpened()) {
        std::cerr << "Error opening video file" << std::endl;
    }

    cv::Mat frame, hsv, mask, result;
    cv::Scalar lowerBound(30, 100, 100); // 예시: 추출하고 싶은 색상의 하한값
    cv::Scalar upperBound(60, 255, 255); // 예시: 추출하고 싶은 색상의 상한값

    while (cap.read(frame)) {
        cv::cvtColor(frame, hsv, cv::COLOR_BGR2HSV);
        cv::inRange(hsv, lowerBound, upperBound, mask);
        cv::bitwise_and(frame, frame, result, mask);

        cv::imshow("Original", frame);
        cv::imshow("Result", result);
        if (cv::waitKey(30) == 27) {
            break;
        }
    }

    cap.release();
    cv::destroyAllWindows();

    return 0;
}

마치며

이 예제는 OpenCV를 사용하여 동영상 파일에서 특정 색상을 추출하는 간단한 방법을 제시했습니다. 물론 실제 프로젝트에는 이 외에도 섬세한 조정이 필요할 수 있습니다. 그러나 이를 시작으로 색상 추출과 동영상 처리에 대한 지식을 더욱 확장할 수 있을 것입니다.