Ventana abierta de Python OpenCV sobre otras aplicaciones

Al ejecutar un script en Python de OpenCV que contiene: cv2.imshow(img) la ventana resultante se abre detrás de la ventana de mi terminal. Esta es una leve irritación. ¿Hay alguna forma de que se abra inicialmente por delante / arriba?

Varias personas han hecho preguntas ( aquí y aquí ) acerca de forzar un comportamiento persistente, pero creo que esto es más simple.

Plataforma OS X y OpenCV 2.4.11

Abra una namedWindow antes de imshow , por ejemplo:

 cv2.namedWindow('ImageWindowName', cv2.WINDOW_NORMAL) cv2.imshow('ImageWindowName',img) cv2.waitKey(0) cv2.destroyAllWindows() 

Comenta si esto hace algo diferente.

Puedo hacer lo que creo que quieres al agregar una sola línea al siguiente archivo en la distribución OpenCV:

 modules/highgui/src/window_cocoa.mm 

Está alrededor de la línea 568, y es la única línea después de la palabra SETCHELL en el siguiente código:

  [window setFrameTopLeftPoint:initContentRect.origin]; [window setFirstContent:YES]; [window setContentView:[[CVView alloc] init]]; [window setHasShadow:YES]; [window setAcceptsMouseMovedEvents:YES]; [window useOptimizedDrawing:YES]; [window setTitle:windowName]; [window makeKeyAndOrderFront:nil]; // SETCHELL - raise window to top of stacking order [window setLevel:CGWindowLevelForKey(kCGMaximumWindowLevelKey)]; [window setAutosize:(flags == CV_WINDOW_AUTOSIZE)]; [windows setValue:window forKey:windowName]; [localpool drain]; return [windows count]-1; } CV_IMPL int cvWaitKey (int maxWait) { 

Una forma de solucionar esto sería configurar todas las ventanas de OpenCV “frontmost” usando AppleScript.

 subprocess.call(["/usr/bin/osascript", "-e", 'tell app "Finder" to set frontmost of process "Python" to true']) 

De esta manera, todas las ventanas deben ser llevadas al frente.