我想同时打开tkinter窗口和opencv窗口。请帮助我同时运行它们。我该怎么做呢?代码如下:
import numpy as np
import cv2
from mss import mss
from PIL import Image
import pyautogui
import pyautogui as pg
import tkinter as tk
mon = {'left': 500, 'top': 500, 'width': 500, 'height': 500}
root = tk.Tk()
root.geometry("400x300")
root.title("Tkinter")
root.attributes('-transparentcolor',
'red')
root.config(bg='red')
root.mainloop()
with mss() as sct:
while True:
screenShot = sct.grab(mon)
img = Image.frombytes(
'RGB',
(screenShot.width, screenShot.height),
screenShot.rgb,
)
cv2.imshow('ProjectZero', np.array(img))
if cv2.waitKey(33) & 0xFF in (
ord('q'),
27,
):
break
但每次我试着去做,接下来就会发生:
- tkinter窗口打开,关闭后,打开opencv窗口。(我需要同时打开它们)
- tkinter窗口和opencv窗口同时打开。但是opencv不刷新窗口。只有当我用垃圾邮件关闭tkinter窗口时。
1.或者在关闭tkinter窗口后。打开Opencv窗口并正常工作。但我再也不能打开tkinter窗口了。
1条答案
按热度按时间tjrkku2a1#
我写了一个迷你代码,这样你就可以理解了。我的程序通过OpenCV显示一个tkinter窗口和我的网络摄像头窗口。它们并行运行,不会干扰彼此的工作。我做到了这一点,这要归功于线程模块(它是一个内置的python模块)。这个模块允许你并行运行进程。