KirIn 落書き帳

素人がプログラミング, FPGA, LSIをお勉強しているメモ書きです。間違いがあればご指導していただけたら幸いです。

Surface Pro3のリアカメラでOpenCV

Virtualbox上でWebcameraを使えるようにして、OpenCVで画像をキャプチャーできるようにします。

webcameraをVirtualbox上で使用するにVirtualbox Extention PackVirtualboxに追加する必要があります。

ChocolateyVirtualbox Extension Packをインストールしようとしましたが、なぜかうまくインストールできませんでした。
そこで今回は直接Oracleのダウンロードサイトからインストールしました。簡単にインストールすることができました。

インストール後Virtualboxwebカメラをアタッチします。

f:id:KirIn:20141009203401j:plain

リアカメラのみ使用でき、フロントカメラは使用できませんでした。設定で変更可能だとは思うのですが、また今度調べます。

OpenCVを用いてカメラから画像をキャプチャしてウィンドウに表示し続けます。

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

int main(int argc, char** argv)
{
     // デフォルトのカメラをオープン
     cv::VideoCapture cap(0);
  if (!cap.isOpened())
  {
            std::cerr << "camera cannot open" << std::endl;
           return -1;
     }

   // ウィンドウを作成
   cv::namedWindow("cap", CV_WINDOW_AUTOSIZE);

     while (1)
     {
            cv::Mat frame;
            // カメラからフレームを取得
           cap >> frame;
           // ウィンドウに表示
           cv::imshow("cap", frame);
         // 30 ms 待つ。キー入力があれば終了
            if (cv::waitKey(30) >= 0) break;
    }

   return 0;

}

実行結果のスクリーンショットです。

f:id:KirIn:20141009203610p:plain

これからいろいろOpenCVでリアルタイム処理をさせたいと思います。