Python 无法在tkinter窗口之间移动网络摄像头视频

Python 无法在tkinter窗口之间移动网络摄像头视频,python,opencv,tkinter,webcam,Python,Opencv,Tkinter,Webcam,嗨,我只是想用tkinter模块在python GUI中使用网络摄像头保存视频帧 如何将视频向下移动或移动到GUI中的其他位置,以及如何减小视频显示屏幕大小 我试图将主功能中的lmain=tk.Label(master=window)更改为 lmain=tk.Label(master=window).place(x=500,y=500) 如果我这样做,我会得到以下错误 [警告:0]全局C:\projects\opencv python\opencv\modules\videoio\src\cap

嗨,我只是想用tkinter模块在python GUI中使用网络摄像头保存视频帧

如何将视频向下移动或移动到GUI中的其他位置,以及如何减小视频显示屏幕大小

我试图将主功能中的
lmain=tk.Label(master=window)
更改为
lmain=tk.Label(master=window).place(x=500,y=500)

如果我这样做,我会得到以下错误

[警告:0]全局C:\projects\opencv python\opencv\modules\videoio\src\cap_msmf.cpp(674) SourceReaderCB::~SourceReaderCB正在终止异步回调


无法复制此内容,请确保您发布的代码的行为与您声称的一样。读取代码将不起作用,因为
l2
None
。如果
flag
是None,则
frame
可能不是您所期望的。但您的代码仍在继续处理它,这可能会导致问题。另外,如果
isOpened()
返回false,则不应从网络摄像头读取帧。也许会有帮助。
#This Python program is developed in order to open an internal camera and display the image within Tkinter window.

#importing modules required
from ttk import *
import tkinter as tk
from tkinter import *
import cv2
from PIL import Image, ImageTk
import os
import numpy as np


global last_frame                                      #creating global variable
last_frame = np.zeros((480, 640, 3), dtype=np.uint8)
global cap
cap = cv2.VideoCapture(0)

def show_vid():                                        #creating a function
    if not cap.isOpened():                             #checks for the opening of camera
        print("cant open the camera")
    flag, frame = cap.read()
    frame = cv2.flip(frame, 1)
    if flag is None:
        print("Major error!")
    elif flag:
        global last_frame
        last_frame = frame.copy()

    pic = cv2.cvtColor(last_frame, cv2.COLOR_BGR2RGB)     #we can change the display color of the frame gray,black&white here
    img = Image.fromarray(pic)
    imgtk = ImageTk.PhotoImage(image=img)
    lmain.imgtk = imgtk
    lmain.configure(image=imgtk)
    lmain.after(10, show_vid)

if __name__ == '__main__':
    window=tk.Tk()                                     #assigning window variable for Tkinter as tk
    lmain = tk.Label(master=window)
    lmain.grid(column=0, rowspan=4, padx=5, pady=5)
    window.title("Sign Language Processor")            #you can give any title
    window.geometry("1366x768")
    show_vid()
    window.mainloop()                                  #keeps the application in an infinite loop so it works continuosly
    cap.release()