2008年6月23日月曜日

cvSetCapturePropertyでキャプチャサイズを指定できないので、VideoInputを使ってみた。

OpenCVを使うと簡単にUSBカメラ/WebCamの画像を取り込むことが出来る。
しかし、手持ちのLogicool WebCam Coolで640x480の解像度で取り込むことが出来ない。

以下のどちらも効かない。


cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_WIDTH, 640);
cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_HEIGHT, 480);



同じことを訴えている人たちもぐぐるといるので、OpenCVでは無理そうだ。
そこで、VideoInputというライブラリを試した。
結論から言うと、Logicool WebCam Coolで640x480の画像を取り込むことが出来た。
また、動作は軽快だ。

使い方はいたって簡単だ。
VS2005またはVS2008で、ライブラリ、インクルード、そしてリンカ・入力の設定を済ませる。
ヘッダーのインクルード。


#include <videoInput.h>



初期化。


videoInput VI
int numDevices = VI.listDevices()
if(numDevices == 0) {
//初期化失敗処理
}
VI.setupDevice(0, 640, 480);



画像をピクセルで取り出す。


unsigned char *c;
c = VI.getPixels(0, false);



OpenCV形式に取り込む方法。


IplImage *image->imageData = (char *)VI.getPixels(0, false);



終了処理。


VI.stopDevice(0);

ラベル:

0 件のコメント:

コメントを投稿

登録 コメントの投稿 [Atom]

この投稿へのリンク:

リンクを作成

<< ホーム