我想每个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
时,它工作正常。但是,当
imshow
在for循环中时,我希望每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
}
关于c++ - 在opencv中每3秒绘制和显示一个矩形:C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40128036/