Surface Pro3のリアカメラでOpenCV
Virtualbox上でWebcameraを使えるようにして、OpenCVで画像をキャプチャーできるようにします。
webcameraをVirtualbox上で使用するにVirtualbox Extention PackをVirtualboxに追加する必要があります。
ChocolateyでVirtualbox Extension Packをインストールしようとしましたが、なぜかうまくインストールできませんでした。
そこで今回は直接Oracleのダウンロードサイトからインストールしました。簡単にインストールすることができました。
インストール後Virtualboxにwebカメラをアタッチします。
リアカメラのみ使用でき、フロントカメラは使用できませんでした。設定で変更可能だとは思うのですが、また今度調べます。
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; }
実行結果のスクリーンショットです。
これからいろいろOpenCVでリアルタイム処理をさせたいと思います。