我在Visual Studio中使用OpenCV 3.3.0 for c ++。问题是,当我使用这个代码时,它会打开两个窗口,这些窗口的名称相同,其中一个窗口包含图像,另一个窗口是extra和empty。 (Screenshot from the two windows )
cv::Mat im0 = cv::imread("C:\\Users\\MY_PC\\Desktop\\Image.bmp"); //read the image
cv::resize(im0, I, cv::Size(640, 480), 0, 0, CV_INTER_LINEAR); //Resize the image to 640x480
cv::namedWindow("HI");
cv::imshow("HI", I);
cv::waitKey(0);
此问题之后的更重要的问题是waitkey()
函数只适用于额外的窗口,我应该按下该窗口上的键以查看另一个窗口中的更改。
此外,setMouseCallback
具有相同的问题,并且鼠标命令在包含图像的窗口上不起作用。非常感谢。
答案 0 :(得分:1)
我对项目类型“ Win32 Console Application”有同样的问题。 如果您使用“空项目”,问题将消失。
答案 1 :(得分:0)
尝试注释掉cv::namedWindow("HI");
行,是否有效?
不幸的是,我无法帮助其他两个。
答案 2 :(得分:0)
我发现您分享的代码中没有任何错误。 但是,我通常这样写:
const char* display_name = "Display";//Display name
namedWindow(display_name, WINDOW_AUTOSIZE);//Create Display
imshow(display_name, frame);//Display Image
waitKey(0);//Wait a key to be pressed
答案 3 :(得分:-1)
对于x64:删除了opencv_world410.lib并仅从其他依赖项中添加了opencv_world410d.lib (通用属性->链接器->输入->其他依赖项)
此链接可帮助您为所有项目创建配置文件: https://docs.opencv.org/4.1.0/dd/d6e/tutorial_windows_visual_studio_opencv.html