Невозможно переместить видео с веб-камеры между окнами tkinter - PullRequest
0 голосов
/ 15 февраля 2020

привет, я просто пытаюсь сохранить видеокадр с помощью веб-камеры в python GUI с помощью модуля tkinter

как я могу переместить видео вниз или в другое место в GUI и как уменьшить размер экрана видео-шоу

я пытаюсь изменить lmain = tk.Label(master=window) в основной функции на lmain = tk.Label(master=window).place(x=500,y=500)

, если я это делаю, я получаю следующую ошибку

[WARN: 0] global C: \ projects \ opencv-python \ opencv \ modules \ videoio \ src \ cap_msmf. cpp (674) SourceReaderCB :: ~ SourceReaderCB завершается асинхронно c обратный вызов

#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()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...