У меня проблема с тем, что если моя веб-камера подключена с самого начала, моя программа работает, как и ожидалось, однако, если у меня нет подключенной веб-камеры, и подключите ее после запуска программы.он делает окно tKinter правильного размера, но не показывает кадры с веб-камеры, как это должно быть.
Вот какой-то код:
from tkinter import * # Import the tkinter module (For the Graphical User Interface)
import cv2 # Import the cv2 module for web camera footage
import PIL # Import the pillow library for image configuration.
from PIL import Image, ImageTk # Import the specifics for Image configuration.
print("[INFO] Imports done")
width, height = 800, 600 # Define The width and height widget for cap adjustment
RootGeometry = str(width) + "x" + str(height) # Make a variable to adjust tkinter frame
print("[INFO] Geometries made")
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
print("[INFO] Cap set")
root = Tk()
print("[INFO] Window made")
root.title("Main Window")
root.configure(background="white")
root.geometry(RootGeometry)
root.bind('<Escape>', lambda e: root.quit())
lmain = Label(root)
lmain.pack()
print("[INFO] Configuration of cap done.")
def ShowFrame(frame):
print("[INFO] Show frame Initialized.")
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
img = PIL.Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=img)
lmain.imgtk = imgtk
lmain.configure(image=imgtk)
print("[INFO] After 10 initializing")
lmain.after(10, CheckSource)
print("[INFO] Showed image")
def CheckSource():
print("[INFO] CheckSource Triggered.")
ok, frame = cap.read()
if ok:
print("[INFO] [DEBUG] if Ok initialized")
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.destroyAllWindows()
cv2.waitKey(0)
print("[WARNING] Exiting app after command")
ShowFrame(frame)
else:
print("[WARNING] No source found. Looking for source.")
lmain.after(10, CheckSource)
CheckSource()
root.mainloop()
, на что стоит обратить внимание, так это то, что веб-камера никогда не обнаруживается.Потому что мой вывод всегда такой, независимо от того, подключил я камеру или нет:
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
Somewhere here i connected the camera.
But the camera is never detected.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.
[INFO] CheckSource Triggered.
[WARNING] No source found. Looking for source.