2016-10-19 14 views
0

私が描きたいとディスプレイの長方形のすべての3 Sec描画と矩形を表示するごとに3 OpenCVので秒:C++

私が出ているコードは以下の通りです:

vector <Rect> ROI; 

    for (size_t i = 0; i< ROI.size(); i++) 
     { 
     rectangle(src, ROI[i].tl(), ROI[i].br(), Scalar(110, 220, 0), 10, 8, 0); 
     imshow(source_window, src); 

     const std::chrono::duration<int, std::milli>threadSuspendDuration_k(3000); 
     std::this_thread::sleep_for(threadSuspendDuration_k); 

    } 

私が呼び出して四角形を描画するときimshowつまりforループの外側では正常に動作します。

しかし、imshowがforループ内にある場合、私は四角形を描画して3秒ごとに表示することを期待しています。しかし、それはしません。

どこが間違っていますか?

+0

あなたは[ドキュメント]を読んでいない(http://docs.opencv.org/3.0-beta/modules/highgui/doc/user_interface.html#imshow)、特にwaitKey' 'に関する注意。 –

答えて

3

遅延にはcv::waitKeyを使用してください。

vector <Rect> ROI; 

    for (size_t i = 0; i< ROI.size(); i++) 
    { 
     rectangle(src, ROI[i].tl(), ROI[i].br(), Scalar(110, 220, 0), 10, 8, 0); 
     imshow(source_window, src); 
     waitKey(3000);//3 seconds delay 
    } 
関連する問題