gpt4 book ai didi

c++ - OpenCV destroyWindow() 不执行任何操作。

转载 作者:太空宇宙 更新时间:2023-11-04 04:34:48 25 4
gpt4 key购买 nike

我打开了一个窗口,就像 OpenCV 教程所示,但我希望能够关闭该窗口并在程序中执行其他操作。图像显示正确,但是当调用 destroyWindow 时,它似乎什么也没做,只是移到下一行代码。我也尝试过 destroyAllWindow() ,结果相同。我发现的与此相关的大多数问题都是针对 C 的,或者他们只是说使用 destroyWindow() 但这对我不起作用。

#include <iostream>
#include <string>
#include "opencv2/core/core.hpp"
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>//FOR TESTING


void MyPause(std::string msg){
if(msg != ""){
std::cout << "[+] " << msg << std::endl;
}
std::cout << "Press enter to continue" << std::endl;
std::cin.get();
}

void DisplayMat(cv::Mat img){
cv::namedWindow( "Input", cv::WINDOW_AUTOSIZE );// Create a window for display.
cv::imshow( "Input", img );
cv::waitKey(0);
cv::destroyWindow("Input");

return;
}

std::string filename = "/home/nedwards/Code/projectFiles/testMedia/myYellow.jpg";


int main(){

DisplayMat(som.inputImg);//just assume that som.input is a correctly opend Mat... it is!
MyPause("END OF MAIN");
return 0;
}

最佳答案

一个可能的解决方案是放置:

cvStartWindowThread();

靠近代码的开头(main 的开头)。这可以帮助解决调用 cvDestroyWindow() 时经常发生的缓慢事件交换。您可以看看here更多细节。

顺便说一句,但这并不是完美的解决方案。它与我的一些代码配合得很好,但目前当涉及 waitKey() 等其他事件监听器时,我遇到了问题,我想这是可以理解的。

关于c++ - OpenCV destroyWindow() 不执行任何操作。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25344108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com