[c++] 동영상 파일에서 특정 프레임 추출하기
아래는 OpenCV를 사용하여 동영상 파일에서 특정 프레임을 추출하는 간단한 예제 코드입니다.
#include <opencv2/opencv.hpp>
int main()
{
cv::VideoCapture video("input_video.mp4");
if (!video.isOpened())
{
std::cerr << "Error: Unable to open the video file." << std::endl;
return -1;
}
int frameNumber = 100; // 추출할 프레임 번호
video.set(cv::CAP_PROP_POS_FRAMES, frameNumber - 1);
cv::Mat frame;
if (video.read(frame))
{
cv::imwrite("output_frame.jpg", frame); // 프레임을 이미지로 저장
std::cout << "Frame " << frameNumber << " extracted successfully." << std::endl;
}
else
{
std::cerr << "Error: Unable to extract frame " << frameNumber << "." << std::endl;
}
video.release();
return 0;
}
이 코드는 “input_video.mp4” 파일에서 100번째 프레임을 추출하여 “output_frame.jpg”로 저장합니다. 코드 실행 시 OpenCV 라이브러리를 사용하여 동영상 파일을 열고, 지정한 프레임을 추출하여 이미지 파일로 저장합니다.
참고 문헌:
- OpenCV 공식 문서: https://docs.opencv.org/
- “Learn OpenCV 4 by Building Projects” - David Millan Escriva, Vinícius G. Mendonça, and Prateek Joshi (Packt, 2019)