我需要做什么才能在opencv中使用cout?

时间:2014-08-05 09:35:49

标签: qt opencv cout

我在QT Creator中使用OpenCV 2.4.8,我试图在控制台中打印一些输出,但控制台仍然是空的。

这是一个简约的代码示例:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

int main(){
    std::cout << "File not found" << std::endl;
    cv::waitKey(5000);

    return 1;
}

当我省略cv :: waitKey(5000)这一行时,一切正常并打印文本。这段代码有什么问题?

编辑:我将代码更改为:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

int main(){
    cv::Mat image;
    std::cout << "File not found" << std::endl;

    return 1;
}

控制台打开并显示“按Return键关闭控制台”之类的内容。当我删除行cv :: Mat图像时,everthing工作正常。控制台打开并显示“未找到文件”,并在下一行“按Return键关闭控制台”。当我使用OpenCV代码时,cout不起作用。没有OpenCV代码,一切都还可以。

EDIT2:现在我插入了一个std :: cin.get();在std :: cout行和everthing工作之后。我不知道是什么问题。但这对我来说没问题。

2 个答案:

答案 0 :(得分:0)

cv::waitKey在返回之前等待5秒(5000毫秒),除非用户按下键盘按钮,但由于没有显示窗口,因此不会被捕获。您在运行程序时是否尝试过等待几秒钟?

答案 1 :(得分:0)

您是否尝试flush cout例如

std::cout << "File not found" << std::endl;
std::cout << std::flush;