1 changed files with 58 additions and 0 deletions
@ -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**: Исходное изображение скана клавиатуры. |
||||||
|
|
||||||
|
## Возможные улучшения |
||||||
|
- Добавление поддержки пользовательских настроек для отображения символов. |
||||||
|
- Улучшение алгоритма распознавания для более точного определения клавиш. |
||||||
|
- Добавление поддержки клика мышкой по клавишам. |
Loading…
Reference in new issue