绪:
waitKey()函数在显示图像时具有延时的感化;
是OpenCV中的一个根基函数;
本文本家儿要介绍waitKey函数的格局,功能,以及waitKey窗口机制和waitKey的应用;

东西/原料
- OpenCV 2410
方式/步调
- 1
waitKey格局:
int waitKey(int delay=0)
delay-延时的时候,单元ms;
- 2
waitKey函数的功能:
①期待x ms,若是在此时代有按键按下,则当即竣事并返回按键的ASCII码,不然返回-1;
②若是x=0,则无限期待下去,直到有按键按下;
【注】:在imshow之后,若是没有waitKey语句则不会显示图像。
- 3
waitKey函数的窗口机制:
waitKey的延时功能本家儿要针对图像窗口机制的;
没有窗口,则waitKey号令不执行;
纯粹的延时用sleep号令;
void update(void *param)
{
VideoCapture cap;
cap.open("test.avi");
if ( !cap.isOpened() )
{
return ;
}
for(;;)
{
cap>>frame;
//cvNamedWindow("tmp");//加上这个,再利用waitkey就没问题了
//waitKey(100);//利用waitkey法式必心猿意马崩,本家儿如果因为waitkey是对窗口机制起感化的,即namedWindow发生的窗口,若没有发生的窗口,则waitkey半斤八两于未执行,当视频帧很快的被读完,frame为空,天然就出问题了
Sleep(100);//若利用Sleep,则能正常工作
}
}
void main()
{
_beginthread(update,0,NULL);
Sleep(1000);
cvNamedWindow("test");
for(;;)
{
//判空(省略)
imshow("test",*frame);
waitKey(100);
}
waitKey(0);
}
- 4
应用:
#include < opencv2/highgui/highgui.hpp >
#include < iostream >
#include < Windows.h >
using namespace cv;
using namespace std;
int main()
{
Mat im;
double duration;
im = imread("lena.jpg",0);
// 测试没有namedWindow时的waitKey执行时候
duration = static_cast<double>(getTickCount());
waitKey(10000);
duration = static_cast<double>(getTickCount()) - duration;
duration /= getTickFrequency();
cout <<"第一个waitKey运行时候为:" << duration << 's' << endl;
namedWindow("lena");
imshow("lena",im);
// 测试有namedWindow时的waitKey执行时候
duration = static_cast<double>(getTickCount());
waitKey(10000);
duration = static_cast<double>(getTickCount()) - duration;
duration /= getTickFrequency();
cout <<"第二个waitKey运行时候为:" << duration << 's' << endl;
Sleep(20000);
return 0;
}
从执行成果看出,第一个成果并未如期执行,第二个成果如期执行了。这是因为waitKey仅对窗口机制起感化,即namedWindow发生的窗口。若在此之前没有发生窗口,则waitKey半斤八两于未执行。
- 5
注重事项:
①waitKey()--这个函数是在一个给心猿意马的时候内(单元ms)期待用户按键触发;若是用户没有按下 键,则接续期待(轮回)
②while(1){ if(waitKey(100)==27)break; } 在这个法式中,我们告诉OpenCv期待用户触发事务,期待时候为100ms,若是在这个时候段内, 用户按下ESC(ASCII码为27),则跳出轮回,不然,则跳出轮回
③若是设置waitKey(0),则暗示法式会无限制的期待用户的按键事务
注重事项
- waitKey功能: 期待x ms,若是在此时代有按键按下,则当即竣事并返回按键的ASCII码;
- waitKey的延时功能本家儿要针对图像窗口机制的;
来源:百闻(微信/QQ号:9397569),转载请保留出处和链接!
本文链接:https://www.ibaiwen.com/web/239726.html
- 热门文章
-
WB蒙特利尔(WB Montreal)——欧美十大最差视频游戏开发商
迅猛龙(Velociraptor)——欧美史前十大死亡动物
什么是果酱猫(What Marmalade Cats)?
神奇蜘蛛侠2(The Amazing Spider-Man 2)——欧美最佳蜘蛛侠电影
希瑟(Heather)——欧美十大最佳柯南灰歌
二人梭哈
faceu激萌怎么把瘦脸开到最大
奥兹奥斯本(Ozzy Osbourne)——欧美十大高估歌手
什么是小脑前下动脉(Anterior Inferior Cerebellar Artery)?
我应该知道康涅狄格州的什么(What Should I Know About Connecticut)?
- 热评文章
- 最新评论
-
- 最近访客
-
- 站点信息
-
- 文章总数:200248
- 页面总数:9
- 分类总数:1
- 标签总数:0
- 评论总数:0
- 浏览总数:497