Я новичок в python и пытаюсь изучить openCV, поэтому для просмотра и анализа кадров на видео я хотел создать простой GUI интерфейс, использующий tkinter, чтобы иметь базовые c элементы управления видео, такого как воспроизведение, шаг паузы и l oop, моя проблема в коде ниже, когда я нажимаю кнопку воспроизведения, все блокируется процессом, и я больше не могу нажимать кнопку паузы или любую из кнопок, пожалуйста, предложение о том, как я могу добиться этого, чтобы запустить его асинхронно.
from tkinter import *
import cv2
def play():
cap = cv2.VideoCapture('480.m4v')
while cap.isOpened():
ret, frame1 = cap.read()
cv2.imshow("feed", frame1)
if cv2.waitKey(33) == 27:
break
cv2.destroyAllWindows()
cap.release()
def pause():
print(var1.get())
def step():
print(var1.get())
root = Tk()
root.title('GUI Control')
root.geometry('700x400')
# Play Button
play_btn = Button(root, text="Play", width=12, command=play)
play_btn.grid(row=0, column=0, padx=20, pady=20)
# Pause Button
pause_btn = Button(root, text="Pause", width=12, command=pause)
pause_btn.grid(row=0, column=1, pady=20, padx=20)
# Step Button
pause_btn = Button(root, text="Step", width=12, command=step)
pause_btn.grid(row=0, column=2, padx=20, pady=20)
var1 = IntVar()
Checkbutton(root, text="Loop Playing", variable=var1).grid(
row=1, column=0, sticky=W, padx=20)
root.mainloop()