C++ openCV 이미지, 비디오 읽기

2019. 10. 20. 14:40임베디드/opencv

이미지를 읽는 방법은 아래 코드와 같다. 반드시 파일은 프로젝트와 같은 디렉토리에 있어야 한다

Mat img = imread("ss.jpg"); // 두번째 인자에 0을 넣으면 grayscale 채널 하나로 읽음
namedWindow("img", 0); // make window, 두번째 인자가 0이면 사이즈가 조절 가능 1이면 불가능
imshow("img", img); // window 이름을 써준다
waitKey(0); // ms 단위로 대기한다. 0이면 무한대기

 

 

콘솔창이 아닌 img 창을 활성화하고 key를 눌러야 한다

 

//file load
 VideoCapture capture(".\\video.avi");
 Mat frame;

 //check
 if( !capture.isOpened() )
 {
  printf("AVI file can not open.\n");
  return;
 }
 
 //create window
 namedWindow("w");
 
 while(1)
 {
  //grab frame from file & throw to Mat
  capture >> frame;
  if(frame.empty() ) //Is video end?
   break;
  
  //processing example
  Sobel(frame,frame,frame.depth(),1,0);
  ////////////////////

  //display and delay
  imshow("w", frame);
  if(waitKey(10) > 0)
   break;
 }

[소스코드 출처] http://study.marearts.com/2013/09/opencv-video-file-load-and-display.html

 

waitKey의 반환값은 누르는 키 값에 따라서 달라진다

[출처] http://study.marearts.com/2016/11/keycode-and-ascii-code.html