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

Sử dụng OpenCV với Tkinter

Open CV là một thư viện Python được sử dụng để làm việc với Computer Vision và các tạo tác nhân tạo khác. Open CV có các chức năng và phương pháp có sẵn cung cấp quyền truy cập để làm việc với Thị giác máy tính trong Trí tuệ nhân tạo và Học máy. Một số ví dụ về Open CV là:nhận diện khuôn mặt, phát hiện đối tượng, tia X và các ứng dụng công nghiệp khác.

Sử dụng Thư viện Tkinter, chúng tôi có thể tạo một ứng dụng tương tác sử dụng OpenCV làm phần thiết yếu của ứng dụng.

Để tạo ứng dụng, bạn bắt buộc phải cài đặt OpenCV trong máy cục bộ của mình 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 vào sổ tay.

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

Khi chúng tôi thực thi đoạn mã trên, nó sẽ hiển thị một cửa sổ mở ra camera người dùng để chụp các khung hình.

Sử dụng OpenCV với Tkinter