Я пытаюсь создать приложение, которое обнаруживает внешний видеовход и автоматически переключает его, показывает, я создал систему, в которой оно будет создавать окно tkinter и показывать в нем кадры с веб-камеры, но окно Tkinter не будет отображаться.
Я бы использовал cv2.imshow, но я не хочу использовать это время, необходимое для создания кадра.
import cv2
from tkinter import *
import PIL
from PIL import Image, ImageTk
root = Tk()
root.bind('<Escape>', lambda e: root.quit())
lmain = Label(root)
lmain.pack()
print("[INFO] Making variables")
ImageSource = 0
window_name = "AutoCam"
cap = cv2.VideoCapture(ImageSource)
print("[INFO] Made variables ")
def CheckSource():
cap = cv2.VideoCapture(ImageSource)
while cap.isOpened():
_, frame = cap.read()
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.destroyAllWindows()
cv2.waitKey(0)
break
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
img = PIL.Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=img)
lmain.imgtk = imgtk
lmain.configure(image=imgtk)
lmain.after(10, CheckSource)
print("[INFO] cv2.imshow done")
else:
print("[INFO] Looking for image source.")
CheckSource()
CheckSource()
root.mainloop()
Любая помощь будет принята с благодарностью.