Как я могу проверить, подключен ли монитор в Windows / Linux из приложения OpenCV? - PullRequest
0 голосов
/ 18 января 2019

Как проверить, подключен ли монитор в 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.Но было бы очень полезно, если бы была функция, которая возвращает, подключен монитор или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...