Как проверить, подключен ли монитор в Windows / Linux из приложения OpenCV ?
При запуске приложения требуется следующее поведение программы:
- если монитор подключен, то результаты будут отображаться в окне
- , если монитор не подключен, или если я запускаю приложение по SSH, результаты будут сохранены в image.jpg
В настоящее время, если монитор не подключен или я запускаю свое приложение с использованием SSH, я получаю сообщение об ошибке, которое не могу отловить как исключение:
QXcbConnection:Не удалось подключиться к дисплею
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
if( argc != 2) return -1;
Mat image = imread(argv[1], CV_LOAD_IMAGE_COLOR);
if(! image.data ) return -1;
try {
namedWindow( "Display window", WINDOW_AUTOSIZE );
imshow( "Display window", image );
waitKey(0);
} catch(...) {
imwrite( "output.jpg", image );
}
return 0;
}
В настоящее время приложению OpenCV требуется дополнительный флаг -monitor для включения / отключения вывода в окно, что не очень удобно.
Неттребуется полноценный API, который заменит OS API.Но было бы очень полезно, если бы была функция, которая возвращает, подключен монитор или нет.