diff --git a/README.md b/README.md index e69de29..a7be686 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,58 @@ +# SFG Special Symbols Keyboard + +## Описание +Этот проект представляет собой интерактивную клавиатуру для ввода специальных символов. Клавиатура отображается с использованием графического интерфейса, созданного на базе `Tkinter`, и позволяет быстро копировать специальные символы в буфер обмена. + +## Логика работы +- **Обработка изображения**: + - Скрипт `a4_prepare.py` анализирует изображение клавиатуры (например, скан клавиатуры `a4keyboard_scan.jpg`), выделяет прямоугольные области клавиш. Подписи на клавишах закрываются прямоугольником с средним цветом фона с добавлением шума для естественности. Выходной файл с пустыми клавишами сохраняется в `background_image.png`. + - Позиции прямоугольников клавиш сохраняются в файле `rectangles.json`. + +- **Графический интерфейс**: + - Скрипт `speckb.py` отображает виртуальную клавиатуру с метками клавиш и соответствующими специальными символами. + - При нажатии на клавишу физической клавиатуры: + - Происходит подсветка соответствующей клавиши виртуальной клавиатуры. + - Спецсимвол копируется в буфер обмена. + - Окно автоматически закрывается через 100 мс. + - Спецсимвол через 20 мс после закрытия виртуальной клавиатуры вставляется в текущее активное окно. + +## Используемые технологии +- Python 3.8+ +- Библиотеки: + - `cv2` (OpenCV) + - `numpy` + - `Pillow` + - `Tkinter` + - `pyperclip` +- Bash и xdotool (для автоматизации вставки символов) + +## Установка и запуск +1. **Требования**: + - Установленный Python (3.8 или выше). + - Установленные зависимости: + ```bash + pip install opencv-python numpy pillow pyperclip + ``` + - Bash, xclip и xdotool (для автоматизации). + +2. **Запуск проекта**: + - Подготовьте изображение клавиатуры: + ```bash + python a4_prepare.py + ``` + - Запустите интерфейс: + ```bash + python speckb.py + ``` + +## Файлы проекта +- **a4_prepare.py**: Обработка изображения клавиатуры, генерация данных о прямоугольниках и фона. +- **speckb.py**: Графический интерфейс и функциональность клавиатуры. +- **rectangles.json**: Содержит данные о позициях и размерах клавиш. +- **background_image.png**: Сгенерированное изображение фона клавиатуры. +- **a4keyboard_scan.jpg**: Исходное изображение скана клавиатуры. + +## Возможные улучшения +- Добавление поддержки пользовательских настроек для отображения символов. +- Улучшение алгоритма распознавания для более точного определения клавиш. +- Добавление поддержки клика мышкой по клавишам.