在无头测试机(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 错误的问题。