Как отобразить изображение полностью экранное окно без полей в openCV

Я хочу отобразить изображение в OpenCV в полноэкранном окне без полей. Другими словами, будут отображаться только пиксели изображения, без меню, панели инструментов или фона окна.

При использовании imshow () или cvShowImage () не включайте его:

  1. Окно становится полноэкранным по ширине, но не по высоте. В нем не хватает нескольких пикселей.
  2. Я не мог сделать его без полей, даже изменив настройки окна обработчик.

Я думаю, что проблема кроется в методе cvNamedWindow () , который создает главное окно WS_OVERLAPPED , затем создает дочерний элемент и все функции, такие как imshow () или cvGetWindowHandle () работают с дочерним элементом.

Таким образом, даже команда Windows:

SetWindowLong((HWND)cvGetWindowHandle(winName), GWL_STYLE, WS_VISIBLE | WS_EX_TOPMOST | WS_POPUP);

не помогает, поскольку дочерний элемент не может стать без полей WS_POPUP . У кого-то есть обходной путь?

  • Может быть, показать мат opencv окну без использования встроенных методов opencv
  • Или какой-нибудь трюк с Windows

P.S. Я попробовал следующий код:

cvMoveWindow("AAA",0,0);
cvSetWindowProperty("AAA", CV_WINDOW_FULLSCREEN, CV_WINDOW_FULLSCREEN);

// Also I tried this:
HWND hwnd = (HWND)cvGetWindowHandle("AAA");
RECT windowRect;
windowRect.left = 0;
windowRect.top = 0;
windowRect.right = cxScreen; //Display resolution
windowRect.bottom = cyScreen; //Display resolution
AdjustWindowRect(&windowRect,WS_VISIBLE,false);
long p_OldWindowStyle = SetWindowLongPtr(hwnd,GWL_STYLE,WS_POPUP);
SetWindowPos(hwnd,HWND_TOP,0,0,windowRect.right,windowRect.bottom,SWP_FRAMECHANGED | SWP_SHOWWINDOW);
SetWindowLong(hwnd, GWL_STYLE, WS_VISIBLE | WS_EX_TOPMOST | WS_POPUP); 
9
задан karlphillip 13 December 2011 в 16:35
поделиться