C ++ openCV waitKey(0)不工作?

时间:2017-10-13 11:54:05

标签: c++ opencv

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
using namespace std;
int isSquare(String fileName);
int main() {
    String imgName = "C:/A.jpg";
    isSquare(imgName);
}
int isSquare(String fileName) {
    Mat img;
    img = cv::imread(fileName, IMREAD_COLOR);
    if (img.empty()) {
        cout << "Could not open or find the image" << endl;
        return -1;
    }
    //namedWindow("display", WINDOW_AUTOSIZE);
    imshow("display", img);
    waitKey(0);
    cout << "hi";
    destroyWindow("display");
    return 0;
}

嗨,我现在正在搞乱openCV 3.30,C ++。现在我试图打开一个图像,但是当我执行上面的代码时,显示窗口就会消失。我评论了namedWindow(&#34; display&#34;,WINDOW_AUTOSIZE);因为openCV文件说cv:imshow()会自动创建一个,如果我取消注释那行我有一个灰色窗口,就像这样一个图像窗口。 enter image description here

我不想得到那个灰色的窗口,只有当我专注于灰色窗口而不是图像窗口时,waitKey(0)的键输入才有效。 所以我把这一行作为评论。但如果我这样做,当我执行该代码时,图像窗口会立即消失,就好像我没有waitKey(0)代码一样。很明显,waitKey(0)无法正常工作,因为cout&lt;&lt;&lt;&#34; hi&#34 ;;在waitKey(0)执行之后。

我错过了什么吗?文档是否错误并且使用namedWindow是必要的?我想要的只是摆脱那个灰色的窗户......感谢任何智慧的话语,谢谢。

0 个答案:

没有答案