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. OpenCV có hàm và phương thức tích hợp cung cấp quyền truy cập Computer Vision trong AI và Machine Learning. Ví dụ OpenCV: phát hiện khuôn mặt, phát hiện đối tượng, X-quang và dùng công nghiệp khác.
Dùng Tkinter, ta tạo ứng dụng tương tác dùng OpenCV như phần thiết yếu.
Để tạo ứng dụng, bạn cài OpenCV trên máy cục bộ và đảm bảo gói Python Pillow cài sẵn. Cài bằng lệnh:
pip install open-cv pip install Pillow
Sau khi cài xong, ta tạo cấu trúc và GUI. Chức năng cơ bản: mở webcam (nếu có) bằng OpenCV. Để hiển thị khung hình bị bắt, ta dùng Python Pillow (PIL) chuyển khung hình thành Image. Image dùng trong widget Label lặp lại hiển thị mỗi khung hình.
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 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 thực thi mã, sẽ hiển thị cửa sổ mở camera người dùng bắt khung hình.
