Окно OpenCV должно появляться перед всеми окнами - PullRequest
0 голосов
/ 24 мая 2018

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

Вот фрагмент кода, в котором создается окно и отображается изображение.

    cv2.namedWindow('image',0)
    cv2.resizeWindow('image',1200,720)

    while(1):
        cv2.imshow('image', self.img_res)
        k = cv2.waitKey(1) & 0xFF
        if k == ord('m'):
            res = 1
            break
        elif k == 27:
            break

Я виделнекоторые примеры с модулем win32gui , но я не уверен, как его использовать здесь.

(я использую Python 2.7 в Windows)

1 Ответ

0 голосов
/ 24 мая 2018

Я не знаю ваш полный код, но когда я попробовал его таким образом, он остался перед окном.Надеюсь, это поможет!

import tkinter as tk
from tkinter import *
import cv2

class GUI:
    def __init__(self, master):
        self.event = 1
        self.master = master
        self.img_res = img = cv2.imread('image.jpg', 0)
        self.b = Button(self.master, text='Show image', command=self.window)
        self.b.pack()

    def window(self, event=None):
        while self.event == 1:
            cv2.imshow('image', self.img_res)
            k = cv2.waitKey(1) & 0xFF
            if k == ord('m'):
                res = 1
                break
            elif k == 27:
                break


def main(): 
    root = tk.Tk()
    app = GUI(root)
    root.mainloop()

if __name__ == '__main__':
    main()

Дополнение:

Вы также можете попробовать импортировать ctypes

import ctypes

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