오늘은 OpenCV를 이용하여 비디오 파일 (.avi 확장자) 파일을 이미지 파일( .jpg 확장자)로 변환하는 프로그램을 적어 보았습니다.
폴더를 지정해주지 않고 저장할 경우 무수히 많은 이미지 파일들이 루트 폴더에 저장되는 현상이 발생합니다.
따라서 dicrect.h 파일을 include 시킴으로써 mkdir (파일 생성 함수) 를 이용하여 폴더를 생성한 후 해당 폴더 하위에 이미지 파일을 저장하는 방식을 이용한 소스코드입니다.
#include<stdio.h> #include<opencv2/opencv.hpp> // OpenCV 헤더 파일 #include<direct.h> //파일 생성에 관여하는 헤더 파일 using namespace cv; int main(int argc, char const *argv[]) { char FileName[256] = "test.avi"; char SavePath[256]; VideoCapture *vp; Mat SrcImage; int frameCount = 0; _mkdir("FrameData"); vp = new VideoCapture; vp->open(FileName); if (!vp->isOpened()){ printf("The Video File not founded\n"); return -1; } while (vp != NULL) { *vp >> SrcImage; imshow("Src", SrcImage); sprintf_s(SavePath, "FrameData\\%d.bmp", frameCount); imwrite(SavePath, SrcImage); char key = waitKey(1); frameCount++; if (key == 27) break; } vp->release(); return 0; }
반응형