-
[C++] opencv를 이용한 영상캡처Windows 프로그래밍 2019. 5. 27. 18:15
영상 캡처를 해야할 일이 있어서 방법을 찾던 중 opencv의 VideoCapture 클래스를 이용하면 쉽게 캡처가 가능하다는 것을 알게 되었다. 이를 이용해 캡처하는 방법을 알아보자.
코드는 아래와 같다.
/* #include <opencv2/opencv.hpp> #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" using namespace cv; using namespace std; */ 위 헤더파일들을 include 해주고 using namespace를 추가해주면 코드가 짧아진다♥ VideoCapture cap(cpath); // cpath에는 캡처할 영상의 경로를 넣는다 if (!cap.isOpened()) { cout << "Error opening video stream" << endl; return arr; } cap.set(CAP_PROP_POS_MSEC, time); // 캡처할 시간대(밀리세컨드) cap.set(CAP_PROP_BUFFERSIZE, 2); // 버퍼크기 지정 string strFilePath = ""; Mat frame; cap >> frame; stringstream ss; ss << dstpath; // dstpath에는 캡처한 이미지를 저장할 경로를 넣어준다 string s_ = ss.str(); imwrite(s_, frame); // 이미지 저장
아 너무쉬워 큰일났다. 이렇게 끝나면 짧으니까 opencv 라이브러리를 사용하는 방법까지 알아보자.
참고로 VS2017을 기준으로 작성하도록 하겠다.
일단 Github에서 opencv 라이브러리를 다운받아서 저장한다. 그 후엔 제어판\모든 제어판 항목\시스템 으로 가서 고급 시스템 설정에 들어간다. 시스템 변수에서 새로 만들기를 선택해 변수명을 OPENCV_BUILD (이건 마음대로 하면 된다) 로 하고 다운받은 opencv 폴더의 build 경로를 값으로 넣어준다.
예) C:\openv\build
그 다음 시스템 변수에서 Path 변수를 선택해 편집을 누른 후 새로만들기에서
%방금 자기가 정한 변수명%\x64\vc15\bin
을 추가해준다. 시스템 환경 변수 편집을 이걸로 끝이다. 이젠 opencv 라이브러리를 이용할 프로젝트로 이동한다.
프로젝트 속성 창에서 아래의 사진과 같이 추가 포함 디렉터리에 opencv경로\build\include 를 입력해준다.
이제 링커의 일반에서 아래와 같이 추가 라이브러리 디렉터리도 설정해주고
링커의 입력으로 가서 추가 종속성을 누른 후 아래의 사진에 있는 opencv_world410.lib을 추가해주면 된다. (Debug 모드를 사용할 경우 d를 붙인 opencv_world410d.lib을 추가하면 된다)
저 opencv_world410.lib 파일은 opencv\build\x64\vc15\lib 에 있는데 저 파일을 opencv 라이브러리를 사용할 프로젝트 폴더로 복사해줘야 한다.
'Windows 프로그래밍' 카테고리의 다른 글
소켓과 MFC를 이용한 채팅 프로그램 개발하기 - 클라이언트편 (1) 2019.03.06 소켓과 MFC를 이용한 채팅 프로그램 개발하기 - 서버편 (17) 2019.03.06 Windows 우클릭 메뉴 항목 추가 (0) 2019.02.18 MFC 버튼 이미지로 바꾸기 (0) 2019.02.15 Windows 서비스 프로그램 개발 - 3 (0) 2019.01.08 댓글