# 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**: Исходное изображение скана клавиатуры. ## Возможные улучшения - Добавление поддержки пользовательских настроек для отображения символов. - Улучшение алгоритма распознавания для более точного определения клавиш. - Добавление поддержки клика мышкой по клавишам.