0

在无头测试机(Travis CI)上,使用时cv::imshow出现程序崩溃并显示:

Gtk-WARNING **: cannot open display: 

该消息似乎很正常。但我无法成功捕捉到错误!

我尝试使用该代码:

    try
    {
        // create a window for display.
        cv::namedWindow( name, CV_WINDOW_AUTOSIZE );
        // Show our image inside it.
        cv::imshow( name, img );

        // take time to effectively display the image
        cv::waitKey(1000);
    }
    catch (cv::Exception& e)
    {
        std::cout << "OpenCV GUI not able to pop up: " << e.what() << 
                "\nProbably executing on a headless test machine? " << std::endl;
    }

...甚至与

catch (...)

没有成功。

任何帮助都会...帮助!

谢谢


编辑: 我在这里找到了一个解决方法:https ://github.com/itseez-academy/itseez-ws-2016-practice/blob/master/.travis.yml 使用 xvfb 为了不让cv::imshow(或cv::namedWindow)提高“不显示”错误...实际上,它并不能真正解决我无法捕获 gtk 错误的问题。

4

0 回答 0