1

次のコードを使用してカメラパラメータを設定しようとしていますが、まったく機能しません。

using namespace cv;

    int main(int argc,char *argv[])
    {
        VideoCapture cap(0); // open the default camera 
        if(!cap.isOpened())  // check if we succeeded
            return -1;
        bool value = cap.set(CV_CAP_PROP_FRAME_WIDTH,10);
        for(;;)
        {
            Mat frame;
            cap >> frame;   // get a new frame from camera
            imshow("frame", frame);
            unsigned char *dad = (unsigned char*)frame.data;
            if(waitKey(30) >= 0) break;
        }
        // the camera will be deinitialized automatically in VideoCapture destructor
        return 0;
    }
4

3 に答える 3

2

OpenCV はこのサイズをカメラで直接設定しようとするため、フレームのサイズを変更する必要はありません。

このアプローチの問題は、カメラがこのサイズをネイティブにサポートしていない場合、OpenCV が値の設定に失敗し、取得後にフレームのサイズを変更するタスクが残されることです。

cap.set()関数の成功を返すようです。確認することをお勧めします。

別のスレッドを見ることをお勧めします: how to change the capture resolution in OpenCV

于 2012-05-23T13:42:18.647 に答える
0

from opencv は、ビデオ キャプチャに directshow を使用しています。ただし、お使いのカメラは、480*320、640*480、720p、1080p などのいくつかの解像度設定しかサポートしていません。他のものを設定すると、まったく機能しません。カメラがサポートする解像度の種類を確認したい場合。Graphedt をダウンロードし、キャプチャ ピン プロパティをチェックインします。

于 2012-06-19T13:02:17.647 に答える
-1

上記のコードは、カメラパラメータの変更には使用されていません。お使いのマシンでビデオを表示するのに十分だと思います。このリンクはあなたに役立つかもしれませんhttp://opencv.willowgarage.com/wiki/CameraCapture

于 2012-05-23T12:22:08.087 に答える