1

ユーザー入力時にカメラが画像をキャプチャする簡単なコードがあります。コードは次のとおりです。

for (int i=0; i<4; i++){
    cvWaitKey(0);                         //wait for input then take picture
    Mat grabbed = cam1.CamCapture();
    Image[i].setImage(grabbed.clone());
    imshow("picture", Image[i].getImage());
    cvWaitKey(1);
}

問題は、画像を表示すると、Image[i] が Image[i-1] 用の画像を表示することです。

ループに入ると、キーを押す必要があり、カメラが写真をキャプチャして最初のオブジェクト Image[0] に保存し、プロセスは4回繰り返しました。しかし、そうではないようです。

現時点では、ネストされたループを使用する回避策があります。int k; for (int i=0; i<4; i++){ cvWaitKey(0); //入力を待ってから写真を撮ります for (int k=0;i<5;k++){ マットをつかむ = cam1.CamCapture(); Image[i].setImage(grabbed.clone()); } imshow("画像", Image[i].getImage()); cvWaitKey(1); }

ただし、これは効率的な方法ではないようです。この問題はバッファの問題が原因である可能性があると思いますが、よくわかりません。

アドバイスください、よろしくお願いします。

4

1 に答える 1

0

for ループを do while ループに変更します

int i=0;

do {
    cvWaitKey(0);                         //wait for input then take picture
    Mat grabbed = cam1.CamCapture();
    Image[i].setImage(grabbed.clone());
    imshow("picture", Image[i].getImage());
    cvWaitKey(1);
}while ( i<4; i++)

これはテストされていません

于 2013-04-22T17:42:41.957 に答える