OpenCV とこのコードを使用して、HD カメラからいくつかの画像データをキャプチャします (関連するスニペットのみ)。
data->capture =cvCaptureFromCAM(data->config.device); // open the device
...
IplImage *grabFrame=cvQueryFrame(data->capture);
このコードを使用すると、カメラが 1920x1080 をサポートしている間、常に 640x480 のサイズのgrabFrame を取得します。初期化後にそのようなことをすると:
cvSetCaptureProperty(data->capture,CV_CAP_PROP_FRAME_WIDTH,1920);
cvSetCaptureProperty(data->capture,CV_CAP_PROP_FRAME_HEIGHT,1080);
実際の HD 解像度で結果が得られますが、ぼやけた画像は、640x480 から HD 解像度にのみアップスケールされていることを意味します。では、どうすればOpenCVに実際に塗りつぶしのネイティブ解像度を使用させることができますか?
Windows と Linux で発生するため、ドライバー/ハードウェアの問題ではないようです。これらのシステムで他のアプリケーションを試してみると、期待どおりの完全なネイティブ解像度が得られます。
ありがとう!