So zeigen Sie ein Bild in full screen borderless Fenster in openCV

Möchte ich ein Bild in OpenCV in a full screen borderless window.
In anderen Worten, nur die Pixel im Bild erscheint, ohne Menü, Symbolleiste oder im Fenster-hintergrund.

Mit imshow() oder cvShowImage() nicht aktivieren:

  1. Das Fenster wächst auf Vollbild
    in der Breite aber nicht in der Höhe. Es findet paar Pixel.
  2. Ich konnte es nicht lassen randloser auch durch ändern der Einstellungen der Fenster
    hf.

Ich denke, dass das problem wurzelt in cvNamedWindow() Methode, die erstellt main WS_OVERLAPPED Fenster, dann schafft ein Kind und alle Funktionen wie imshow() oder cvGetWindowHandle() wirken auf das Kind.

Damit auch windows-Befehl:

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

Nicht helfen, da das Kind kann nicht randlos WS_POPUP. Jemand ein workaround?

  • Vielleicht, zeigen opencv mat Fenster
    ohne Verwendung von opencv integrierten Methoden
  • Oder irgendeine Art von windows-trick

P. S. ich habe versucht den folgenden code:

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); 
InformationsquelleAutor DanielHsH | 2011-06-28
Schreibe einen Kommentar