OpenCV 2.0を試してみた

この連休中にちょっとOpenCV 2.0で遊んでいました。
ライブラリの規模がかなり大きくなったのでソースを読むのも大変です;

IplImage や CvMat は 新しいC++インタフェースでは cv::Mat に取って代わります。
(1.1preで追加されたWImageクラスの立場は? 関連:cv::WImage – OpenCV 1.1)
また、メモリ管理が賢くなっているので、後始末は各クラスのデストラクタに任せておきましょう。
boostのshared_ptrと同様のスマートポインタ(cv::Ptr)も用意されていて、いろいろ便利になっているようです。

C++インタフェースを中心にこれから少しずつ調べていこうと思います。

opencv2.0_test

// カメラから画像をキャプチャ

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

int main(int argc, char **argv) {
  using namespace cv;
  VideoCapture cap(0);  // VideoCapture(int device)
  if(!cap.isOpened()) return -1;
  Mat edges;
  char code;
  namedWindow("OpenCV 2.0 Capture Test", CV_WINDOW_AUTOSIZE);
  for(;;) {
    Mat frame;
    cap >> frame;  // virtual VideoCapture&  operator >> (Mat& image)
    cvtColor(frame ,edges, CV_BGR2GRAY);
    GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);
    Canny(edges, edges, 0, 30, 3);
    imshow("OpenCV 2.0 Capture Test", edges);
    code = waitKey(30);
    if(code == 'q') break;
    if(code == 's') imwrite("test.jpg", edges);
  }
  return 0;
}
 

Tags: ,

Comments

No comments so far.

  • Leave a Reply
     
    Your gravatar
    Your Name