Thư viện Python độc lập và do đó tất cả đều có thể dùng cho các mục đích khác nhau khi xây dựng ứng dụng có tính năng đặc thù. Trong ví dụ này, chúng ta xây dựng ứng dụng dùng OpenCV và Tkinter. OpenCV là thư viện Python dùng làm việc với Computer Vision và các nhân tạo khác. Sử dụng mô-đun OpenCV, chúng ta hiển thị webcam trong cửa sổ tkinter.
Để tạo ứng dụng, bạn cần cài đặt open-cv trên máy cục bộ và đảm bảo gói Python Pillow đã cài đặt sẵn. Bạn có thể cài đặt bằng lệnh:
pip install open-cv pip install Pillow
Sau khi cài đặt xong, ta bắt đầu tạo cấu trúc và GUI. Chức năng cơ bản là mở webcam (nếu có) bằng OpenCV. Để hiển thị từng khung hình bị bắt, ta dùng gói Python Pillow (PIL) chuyển khung hình thành Image. Image này dùng trong widget Label lặp lại hiển thị mỗi khung hình bị bắt trong cửa sổ.
Ví dụ
# Import thư viện cần thiết
from tkinter import *
from PIL import Image, ImageTk
import cv2
# Tạo instance của cửa sổ Tkinter
win = Tk()
# Đặt kích thước cửa sổ
win.geometry("700x350")
# Tạo Label để bắt khung hình Video
label = Label(win)
label.grid(row=0, column=0)
cap = cv2.VideoCapture(0)
# Định nghĩa hàm hiển thị khung hình
def show_frames():
# Lấy khung hình mới nhất và chuyển thành Image
cv2image = cv2.cvtColor(cap.read()[1], cv2.COLOR_BGR2RGB)
img = Image.fromarray(cv2image)
# Chuyển image thành PhotoImage
imgtk = ImageTk.PhotoImage(image=img)
label.imgtk = imgtk
label.configure(image=imgtk)
# Lặp lại sau khoảng thời gian để bắt liên tục
label.after(20, show_frames)
show_frames()
win.mainloop()
Kết quả
Khi chạy mã trên, webcam sẽ bật và hiển thị trong cửa sổ tkinter.
