[c++] 동영상 파일에 필터 적용하기
이번 포스트에서는 C++를 사용하여 동영상 파일에 필터를 적용하는 방법에 대해 알아보겠습니다.
동영상 파일 읽기
먼저 OpenCV를 사용하여 동영상 파일을 읽는 방법부터 알아봅시다. OpenCV는 VideoCapture
클래스를 사용하여 동영상 파일을 읽을 수 있습니다.
#include <opencv2/opencv.hpp>
int main() {
cv::VideoCapture video("input.mp4");
if (!video.isOpened()) {
std::cerr << "Error: Cannot open video file" << std::endl;
return -1;
}
// 동영상 파일 읽기 성공
// 필터 적용 및 결과 동영상 파일 출력
// ...
video.release();
return 0;
}
필터 적용하기
OpenCV를 사용하여 동영상에 다양한 필터를 적용할 수 있습니다. 예를 들어, 그레이스케일로 변환하거나 블러(Blur) 효과를 적용할 수 있습니다.
cv::Mat frame;
cv::Mat processedFrame;
while (true) {
video >> frame;
if (frame.empty()) {
break;
}
// 필터 적용
cv::cvtColor(frame, processedFrame, cv::COLOR_BGR2GRAY); // 그레이스케일로 변환 예시
// cv::GaussianBlur(frame, processedFrame, cv::Size(5, 5), 0); // 가우시안 블러 예시
// 결과 동영상 파일로 출력
// ...
}
동영상 파일 저장
필터가 적용된 결과를 새로운 동영상 파일로 저장할 수 있습니다.
cv::VideoWriter outputVideo("output.mp4",
cv::VideoWriter::fourcc('M', 'J', 'P', 'G'),
video.get(cv::CAP_PROP_FPS),
cv::Size(video.get(cv::CAP_PROP_FRAME_WIDTH), video.get(cv::CAP_PROP_FRAME_HEIGHT)));
while (true) {
video >> frame;
if (frame.empty()) {
break;
}
// 필터 적용
// ...
// 결과 동영상 파일로 출력
outputVideo.write(processedFrame);
}
outputVideo.release();
마무리
이렇게 OpenCV를 사용하여 C++로 동영상 파일에 필터를 적용하고 결과를 저장하는 방법에 대해 알아보았습니다. 추가적으로 다양한 필터와 영상처리 기술을 적용하여 원하는 효과를 얻을 수 있습니다.
더 자세한 내용은 OpenCV 공식 문서를 참고하시기 바랍니다.