OpenCV - 在捕获循环中没有显示没有等待键的图像[重复]
Posted
技术标签:
【中文标题】OpenCV - 在捕获循环中没有显示没有等待键的图像[重复]【英文标题】:OpenCV - No image shown without waitkey in the capture loop [duplicate] 【发布时间】:2016-12-17 03:10:20 【问题描述】:在 OpenCV 中,如果我在捕获图像的显示循环中不包含 Cv2.WaitKey(1)
行,则屏幕上不会呈现任何图像。
C++、phyton 或 C# 也是如此。
这是什么原因造成的,还有其他选择吗?
这个例子是用 C# 编写的(opencvsharp):
VideoCapture cap = new VideoCapture();
Window w = new Window();
cap.Open("animation.avi");
while (cap.Read(src))
Cv2.WaitKey(1);
w.ShowImage(src);
【问题讨论】:
@Rama Nah 这更像是为什么您需要调用它才能看到图像。我想他知道自己能做什么 【参考方案1】:从技术上讲,highgui
需要调用 waitkey()
以便有时间更新窗口。
来自 OpenCV 文档,参考 imshow()
函数(C# 中的 ShowImage
):
这个函数后面应该有waitKey函数,它显示 指定毫秒的图像。否则不会显示 图片。例如,waitKey(0) 将无限显示窗口 直到任何按键(它适用于图像显示)。等待键(25) 将显示一帧 25 毫秒,之后将显示 自动关闭。 (如果你把它放在一个循环中阅读视频,它会 逐帧显示视频)
关于waitKey()
函数(C# 中的WaitKey()
):
该函数是HighGUI中唯一可以获取和处理的方法 事件,因此需要定期调用它以进行正常事件 处理,除非在一个环境中使用 HighGUI 关心事件处理。
【讨论】:
您能否提供引用的 OpenCV 文档的链接或参考? docs.opencv.org/2.4/modules/highgui/doc/… OpenCV 3.1.0 专用:docs.opencv.org/trunk/d7/dfc/…以上是关于OpenCV - 在捕获循环中没有显示没有等待键的图像[重复]的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV - imshow()在等待来自命令窗口的输入时没有响应