ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 라이브러리를 사용할 프로젝트 폴더로 복사해줘야 한다.

     

    댓글

Designed by Tistory.