동영상을 입력받아 전처리를 하여 동영상으로 저장하는 방법을 알아보도록 하겠습니다.
동영상을 저장하기 위해선 Opencv의 클래스인 VideoWriter를 사용해야합니다.
또한 저장시킬 동영상의 코덱, 프레임, 영상의 크기 등의 정보를 정해야 합니다.
아래 코드는 영상을 입력받아 크기를 500x500으로 줄이고 RGB에서 Grayscale을 적용한 뒤
동영상으로 저장하는 과정입니다.
* 본 코드는 Opencv 3.1.0 Version에서 사용하였습니다.
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img;
Mat pre_p;
VideoCapture capture("D:\\ship.mp4"); // 입력 영상
double fps = 35; // 영상 프레임
int fourcc = VideoWriter::fourcc('D', 'X', '5', '0'); // 코덱 설정
VideoWriter save;
//save.open(입력 영상, 코덱, 프레임, 영상 크기, 컬러)
save.open("D:\\save_Video.avi", fourcc, fps, Size(500, 500),0);
while (1) {
capture >> img; // 카메라 영상받기
if (img.empty())
break;
pre_p = img.clone(); // 영상 복사
resize(pre_p, pre_p, Size(500, 500), 0, 0, CV_INTER_LANCZOS4); // 이미지 리사이징
cvtColor(pre_p, pre_p, CV_RGB2GRAY); // Grayscale
save << pre_p; // 프레임을 동영상으로 저장
imshow("원본 영상", img);
imshow("전처리 영상", pre_p);
waitKey(10);
}
}
'OpenCV' 카테고리의 다른 글
[Opencv] 코너 특징점 검출 cornerHarris() (0) | 2020.04.19 |
---|---|
[OpenCV] 선택 영역 이미지 추출 setMouseCallback() (0) | 2020.04.15 |
[Opencv] 이진화 라벨링 (0) | 2020.04.09 |
[Opencv] 이미지 파일에 텍스트 숨기기 - 스테가노그래피 (0) | 2020.04.03 |
[Opencv] 이미지 픽셀 접근 (0) | 2020.03.29 |