2011年12月31日土曜日

OpenCV2 その1 ー動画キャプチャと保存ー

コンピュータビジョン最先端ガイド4 (CVIMチュートリアルシリーズ)
高松 淳 日浦 慎作 長原 一 富永 昌治 向川 康博
アドコム・メディア
売り上げランキング: 1393
以前OpenCV2を使って、研究をしていたことがあった。OpenCVは比較的、情報も豊富で勉強もしやすい部分だったと思うが、学術研究となるとコーディングばかりに時間を割くのも難しいというジレンマがあったような気がする。

そこで、自分の研究のコードを整理するという意味もこめて、少しずつアップしていきます。

今回は、テストということで、最も基本的な画像のキャプチャと保存。

#include <cv.h>
#include <highgui.h>
#include <iostream>

using namespace std;

int main(int argc, char **argv) {  
 using namespace cv;
 
 VideoCapture cap(1);  // VideoCapture(int device)  

 if(!cap.isOpened()){
  return -1;
 }
 
 Mat img, frame;
 int num=0;
 
 namedWindow("OpenCV 2.0 Capture Test", CV_WINDOW_AUTOSIZE);  
 
 for(;;) {  
  cap >> frame;  
  
  //img=frame;
  //cvtColor(frame ,img, CV_BGR2GRAY);  

  resize(frame,img,Size(640,480));

  //GaussianBlur(img, img, Size(7, 7), 1.5, 1.5);  
  //Canny(img, img, 0, 30, 3);  
  
  imshow("OpenCV 2.0 Capture Test", img);  
   
  char code; //key入力
  code = waitKey(10);  

  if(code == 'q') break;  
  if(code == 's') {
  char fname[255];
   sprintf(fname,"./%d.bmp",num);
   imwrite(fname, img);  
   num++;
  }
 }
 
 return 0;  
} 

こんなコードはいらないというツッコミを頂きそうですが、少しづつ充実できればいいなと思ってます。

0 件のコメント:

コメントを投稿