#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()会自动创建一个,如果我取消注释那行我有一个灰色窗口,就像这样一个图像窗口。
我不想得到那个灰色的窗口,只有当我专注于灰色窗口而不是图像窗口时,waitKey(0)的键输入才有效。 所以我把这一行作为评论。但如果我这样做,当我执行该代码时,图像窗口会立即消失,就好像我没有waitKey(0)代码一样。很明显,waitKey(0)无法正常工作,因为cout&lt;&lt;&lt;&#34; hi&#34 ;;在waitKey(0)执行之后。
我错过了什么吗?文档是否错误并且使用namedWindow是必要的?我想要的只是摆脱那个灰色的窗户......感谢任何智慧的话语,谢谢。