Hướng dẫn how to make virtual keyboard in python - cách làm bàn phím ảo trong python
Bài viết này đã được xuất bản như một phần của & NBSP; Data Science Blogathon Show Giới thiệuOpenCV là thư viện phổ biến nhất cho nhiệm vụ tầm nhìn máy tính, nó là một thư viện nguồn mở đa nền tảng để học máy, xử lý hình ảnh, v.v. Sử dụng các ứng dụng tầm nhìn máy tính thời gian thực nào được phát triển. CVZone là một gói tầm nhìn máy tính, trong đó nó sử dụng OpenCV và Medias cốt lõi của nó giúp chúng ta dễ dàng chạy như theo dõi tay, phát hiện khuôn mặt, phát hiện mốc khuôn mặt, ước tính tư thế, v.v., và xử lý hình ảnh và các ứng dụng liên quan đến tầm nhìn máy tính khác. Kiểm tra ở đây để biết thêm thông tin. Thực hiện bàn phím ảo bằng OpenCVHãy để chúng tôi tạo một bàn phím ảo. Đầu tiên, chúng ta hãy cài đặt các mô -đun cần thiết. ---> pip install numpy ---> pip install opencv-python ---> pip install cvzone ---> pip install pynput Nhập thư viện cho bàn phím ảo bằng OpenCVBây giờ, hãy để nhập khẩu các mô -đun cần thiết import cv2 import cvzone from cvzone.HandTrackingModule import HandDetector from time import sleep import numpy as np from pynput.keyboard import Controller Ở đây chúng tôi đang nhập mô -đun Handdetector từ cvzone.HandTrackingModule và sau đó để làm cho bàn phím ảo hoạt động, chúng tôi cần nhập bộ điều khiển từ pynput.keyboard. cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) cap.set(3, 1280) cap.set(4, 720) Bây giờ, hãy để Lừa lấy đầu vào thời gian thực từ CV2.Videocapture detector = HandDetector(detectionCon=0.8) keyboard_keys = [["Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P"], ["A", "S", "D", "F", "G", "H", "J", "K", "L", ";"], ["Z", "X", "C", "V", "B", "N", "M", ",", ".", "/"]] final_text = "" Chúng tôi khởi tạo bộ xử lý với độ tin cậy phát hiện là 0,8 và gán nó cho máy dò. Sau đó, chúng tôi tạo một mảng danh sách theo bố cục của bàn phím của chúng tôi và xác định một chuỗi trống để lưu trữ các khóa được đánh máy. Xác định chức năng vẽkeyboard = Controller() def draw(img, buttonList): for button in buttonList: x, y = button.pos w, h = button.size cvzone.cornerRect(img, (button.pos[0], button.pos[1], button.size[0],button.size[0]), 20 ,rt=0) cv2.rectangle(img, button.pos, (int(x + w), int(y + h)), (255, 144, 30), cv2.FILLED) cv2.putText(img, button.text, (x + 20, y + 65), cv2.FONT_HERSHEY_PLAIN, 4, (0, 0, 0), 4) return img Khởi tạo bộ điều khiển bàn phím và xác định một hàm với Tên Draw () và nó có hai đối số là hình ảnh và danh sách nút và trả về hình ảnh. Ở đây bên trong hàm draw (), chúng tôi đang sử dụng hàm cvzone, cornerct để vẽ các cạnh hình chữ nhật ở góc của mỗi phím. Đó là để làm cho bố cục bàn phím của chúng tôi trông đẹp hơn. Nó sẽ trông giống như những hình ảnh dưới đây. Bạn cũng có thể thử thay đổi màu sắc khác nhau. class Button(): def __init__(self, pos, text, size=[85, 85]): self.pos = pos self.size = size self.text = text Sau đó, chúng tôi xác định một lớp được gọi là nút () và chúng tôi cung cấp vị trí, văn bản và kích thước làm đầu vào để chúng tôi có thể sắp xếp các phím bàn phím theo thứ tự được xác định rõ. buttonList = [] # mybutton = Button([100, 100], "Q") for k in range(len(keyboard_keys)): for x, key in enumerate(keyboard_keys[k]): buttonList.append(Button([100 * x + 25, 100 * k + 50], key)) Vòng lặp ở trên sẽ lặp qua các phím bàn phím và các đối tượng nút nơi chúng tôi đưa ra vị trí và văn bản làm đầu vào được thêm vào trong danh sách danh sách được gọi là danh sách. Sau đó, chúng ta có thể vượt qua danh sách này để vẽ chức năng để vẽ trên khung thời gian thực của chúng ta. Chương trình chính cho bàn phím ảo sử dụng OpenCVĐây là phần quan trọng. while True: success, img = cap.read() img = detector.findHands(img) lmList, bboxInfo = detector.findPosition(img) img = draw(img, buttonList) # change the draw funtion to transparent_layout for transparent keys if lmList: for button in buttonList: x, y = button.pos w, h = button.size if x < lmList[8][0] |