Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để hiển thị webcam trong TkInter Window?

Các thư viện Python là độc lập và do đó tất cả chúng có thể được sử dụng cho các mục đích khác nhau trong khi xây dựng một ứng dụng đặc trưng cụ thể. Trong ví dụ này, chúng tôi sẽ xây dựng một ứng dụng sử dụng thư viện OpenCV và Tkinter. OpenCV là một thư viện Python được sử dụng để làm việc vớiComputer Vision và các tạo tác nhân tạo khác. Sử dụng mô-đun OpenCV, chúng tôi phải hiển thị webcam trong cửa sổ tkinter.

Để tạo ứng dụng, bạn phải cài đặt open-cv trong máy cục bộ của bạn và đảm bảo rằng gói Python Pillow được cài đặt sẵn. Bạn có thể cài đặt các gói này bằng cách nhập các lệnh sau,

pip install open-cv
pip install Pillow

Sau khi cài đặt xong, chúng ta có thể bắt đầu tạo cấu trúc và GUI của ứng dụng. Chức năng cơ bản của ứng dụng của chúng tôi sẽ là mở máy ảnh web (nếu có thể) bằng OpenCV. Vì vậy, để hiển thị từng và mọi khung đã chụp, chúng ta có thể sử dụng gói Python Pillow (PIL) để chuyển khung thành Hình ảnh. Giờ đây, Hình ảnh có thể được sử dụng trong tiện ích Nhãn hiển thị lặp đi lặp lại mọi khung đã chụp trong cửa sổ.

Ví dụ

# Import required Libraries
from tkinter import *
from PIL import Image, ImageTk
import cv2

# Create an instance of TKinter Window or frame
win = Tk()

# Set the size of the window
win.geometry("700x350")

# Create a Label to capture the Video frames
label =Label(win)
label.grid(row=0, column=0)
cap= cv2.VideoCapture(0)

# Define function to show frame
def show_frames():
   # Get the latest frame and convert into Image
   cv2image= cv2.cvtColor(cap.read()[1],cv2.COLOR_BGR2RGB)
   img = Image.fromarray(cv2image)
   # Convert image to PhotoImage
   imgtk = ImageTk.PhotoImage(image = img)
   label.imgtk = imgtk
   label.configure(image=imgtk)
   # Repeat after an interval to capture continiously
   label.after(20, show_frames)

show_frames()
win.mainloop()

Đầu ra

Bất cứ khi nào chúng tôi chạy đoạn mã trên, nó sẽ bật webcam và đầu ra sẽ hiển thị trong cửa sổ tkinter.

Làm thế nào để hiển thị webcam trong TkInter Window?