[c++] 동영상 파일에서 특정 색상 추출하기
동영상 파일에서 특정 색상을 추출하고 싶다면, OpenCV 라이브러리를 사용하여 C++로 간단하게 작성할 수 있습니다. 이 라이브러리는 이미지 및 동영상 처리에 매우 유용합니다.
OpenCV 설치
먼저 OpenCV를 설치해야 합니다. 다음 명령어로 OpenCV를 설치할 수 있습니다:
sudo apt install libopencv-dev
또는 다른 방법으로 OpenCV를 설치할 수 있습니다.
색상 추출 알고리즘
동영상 파일에서 특정 색상을 추출하는 알고리즘을 요약하면 다음과 같습니다:
- 동영상 파일을 읽어옵니다.
- 각 프레임마다 색상 공간을 변환합니다. (보통 RGB에서 HSV로 변환합니다)
- 변환된 이미지에서 특정 색상에 해당하는 픽셀을 추출합니다.
- 추출된 픽셀을 새로운 이미지에 추가합니다.
색상 추출하는 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를 사용하여 동영상 파일에서 특정 색상을 추출하는 간단한 방법을 제시했습니다. 물론 실제 프로젝트에는 이 외에도 섬세한 조정이 필요할 수 있습니다. 그러나 이를 시작으로 색상 추출과 동영상 처리에 대한 지식을 더욱 확장할 수 있을 것입니다.