Browse Source

Update Readme

master
FedorSarafanov 3 months ago
parent
commit
5af2119e2d
  1. 58
      README.md

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