Opencv C ++为每个imshow

时间:2018-04-05 07:59:22

标签: c++ visual-studio opencv

我在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具有相同的问题,并且鼠标命令在包含图像的窗口上不起作用。非常感谢。

4 个答案:

答案 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