我想每3 Sec
我提出的代码如下:
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 :(得分: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
}