OpenCV imshow()不起作用

Arm*_*afa 11 c++ io opencv visual-studio-2010 computer-vision

我写了一个openCV代码,我的代码有以下声明:

cv::imshow("Matches", matchesImg);
cv::waitKey(0);
Run Code Online (Sandbox Code Playgroud)

当我在Debug或Release中运行代码时,我无法看到向我显示输出的窗口.

这种情况发生在我创建的每个项目中.

无法弄清楚原因,有人可以指导我吗?

我在Windows 7和Visual Studio 2010上编码,opencv版本为2.4.6

CTZ*_*tef 5

正如我在评论中提到的,您必须先创建一个窗口,使用namedWindow与imshow 查看本教程中相同的窗口名称以获取详细信息。

编辑

这强烈建议您必须事先创建窗口。有些人可能会争辩说,它不适用于以前版本的 OpenCV。然后,假设这个解决方案至少适用于 OpenCV 2.4.6,这是这里关注的版本(它解决了问题)。

  • 在您提供的链接中,我看不到任何暗示(甚至微弱)必须事先创建窗口的内容。查看函数 `imshow()` 的 C++ 源代码,我看到它只是调用了 C 函数 `cvShowImage()`。您可以在 https://github.com/Itseez/opencv/blob/2.4.6/modules/highgui/src/window.cpp 上看到。您还可以在 https://github.com/Itseez/opencv/blob/2.4.6/modules/highgui/src/window_w32.cpp 上看到 `cvShowImage()` 的作用。自己试试?OP 的代码可能还有其他问题。这些链接适用于 OpenCV 2.4.6。 (2认同)