You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.9 KiB
3.9 KiB
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 (для автоматизации вставки символов)
Установка и запуск
-
Требования:
- Установленный Python (3.8 или выше).
- Установленные зависимости:
pip install opencv-python numpy pillow pyperclip
- Bash, xclip и xdotool (для автоматизации).
-
Запуск проекта:
- Подготовьте изображение клавиатуры:
python a4_prepare.py
- Запустите интерфейс:
python speckb.py
- Подготовьте изображение клавиатуры:
Файлы проекта
- a4_prepare.py: Обработка изображения клавиатуры, генерация данных о прямоугольниках и фона.
- speckb.py: Графический интерфейс и функциональность клавиатуры.
- rectangles.json: Содержит данные о позициях и размерах клавиш.
- background_image.png: Сгенерированное изображение фона клавиатуры.
- a4keyboard_scan.jpg: Исходное изображение скана клавиатуры.
Возможные улучшения
- Добавление поддержки пользовательских настроек для отображения символов.
- Улучшение алгоритма распознавания для более точного определения клавиш.
- Добавление поддержки клика мышкой по клавишам.