[openCV学习笔记]——关于waitKey(0)不起作用的问题
2017-11-19 00:24
513 查看
今天写了一个程序,其中有一步是自动读取某个文件夹里所有图片,除了一些问题一直无法发现,就用了以下语句检测读到的文件名是否正确。
在while的大循环中,插入语句cout<<ImgName<<endl; 后为了判断输出是否正确以便查询问题,在while循环结束前加入了语句waitKey(0);以阻止循环继续进行。
但是waitKey(0);这条语句并不起作用,程序仍然没有让我“输入任意键结束"。经查询博客,发现waitKey(0);这条语句只有在至少一个highGUI的交互界面才能起作用,比如一个namedWindow(""); 。
解决方法有两种:
在return前加上system(“pause”)。这条语句的意思是让程序暂停执行,直到你按了任意键,才会继续执行后面的程序。
在程序中给出一个等待输入的语句,比如
如果在opencv里使用了using namespace cv的话,不然还是不起作用。)
但这又出现了另一个问题,当我使用了system("pause");语句以后,在while循环的前后两条语句
namedWindow("Image");
imshow("Image",image);
中window是出来了,但是图片一直加载不出来,后来经过查询,发现是和system这条语句线程冲突导致的,因此在想用system("pause");时应尽量避免展示图象。
最后解决方案:使用了window+waitKey(0);。
在while的大循环中,插入语句cout<<ImgName<<endl; 后为了判断输出是否正确以便查询问题,在while循环结束前加入了语句waitKey(0);以阻止循环继续进行。
但是waitKey(0);这条语句并不起作用,程序仍然没有让我“输入任意键结束"。经查询博客,发现waitKey(0);这条语句只有在至少一个highGUI的交互界面才能起作用,比如一个namedWindow(""); 。
解决方法有两种:
在return前加上system(“pause”)。这条语句的意思是让程序暂停执行,直到你按了任意键,才会继续执行后面的程序。
在程序中给出一个等待输入的语句,比如
char response; std::cin>>response这样控制台就会一直等待你的输入。(注意一定要加上std::
如果在opencv里使用了using namespace cv的话,不然还是不起作用。)
但这又出现了另一个问题,当我使用了system("pause");语句以后,在while循环的前后两条语句
namedWindow("Image");
imshow("Image",image);
中window是出来了,但是图片一直加载不出来,后来经过查询,发现是和system这条语句线程冲突导致的,因此在想用system("pause");时应尽量避免展示图象。
最后解决方案:使用了window+waitKey(0);。
相关文章推荐
- 关于SQLServer2005的学习笔记——树形结构问题
- 关于asp.net 2.0 入门学习之“GlobalResources与Callback问题”的笔记
- 关于SQLServer2005的学习笔记——生日问题
- 关于SQLServer2005的学习笔记——统计学自动分组问题
- 关于SQLServer2005的学习笔记——树形结构问题
- 关于SQLServer2005的学习笔记——生日问题
- 【个人学习笔记8之--关于OVER子句 多属性的比较 PIVOT 聚合问题】
- android菜鸟学习笔记.关于虚拟机里面的ubuntu 文件夹共享给windows XP的拷贝不出来的问题
- Java与Flex学习笔记(11)----关于Struts2拦截Flex请求的问题
- OpenCV学习笔记(16)双目测距与三维重建的OpenCV实现问题集锦(一)图像获取与单目定标
- PE结构学习笔记--关于AddressOfEntryPoint位置在文件中怎么确定问题
- OpenCV学习笔记(7)图像的通道(channels)问题
- Xcode学习笔记中关于如何定义宏问题解决
- [Silverlight学习笔记]关于页面刷新的问题
- 关于SQLServer2005的学习笔记——统计学自动分组问题
- 学习OpenCV——关于三通道的CvMat的求和问题
- 关于SQLServer2005的学习笔记——多触发器执行问题
- [Silverlight学习笔记]关于用户注册之后不能直接登录的问题
- 关于SQLServer2005的学习笔记——多触发器执行问题
- 关于SQLServer2005的学习笔记——统计学自动分组问题