# Image Annotation Tool ## Описание Image Annotation Tool — это приложение для аннотирования изображений прямоугольными ограничивающими рамками с сохранением аннотаций в базу данных SQLite. ## Возможности - **Загрузка изображений**: Поддержка форматов PNG, JPG, JPEG, GIF, BMP - **Аннотирование**: Рисование и редактирование прямоугольных ограничивающих рамок - **Интерактивное редактирование**: Изменение размеров рамки перетаскиванием угловых маркеров - **Сохранение в БД**: Автоматическое сохранение аннотаций с метаданными в SQLite - **Просмотр истории**: Табличный просмотр всех сохраненных аннотаций - **Адаптивный интерфейс**: Темная тема, поддержка изменения размеров холста ## Установка ### Предварительные требования - Python 3.6 или выше - Менеджер пакетов pip ### Установка зависимостей ```bash pip install pillow ``` **Примечание**: Библиотека tkinter входит в стандартную библиотеку Python на большинстве систем. ## Использование ### Рабочий процесс 1. **Запустите приложение** 2. **Нажмите "Выбрать изображение"** для загрузки изображения 3. **Введите координаты** или используйте значения по умолчанию для прямоугольника 4. **Нажмите "Нарисовать"** для создания рамки на изображении 5. **Редактируйте рамку**, перетаскивая угловые маркеры 6. **Нажмите "Сохранить в базу данных"** для сохранения аннотации ### Интерфейс #### Левая панель (холст) - Отображение загруженного изображения - Интерактивное рисование и редактирование прямоугольников - Возможность перетаскивания углов для изменения размера #### Правая панель (управление) - **Координаты изображения**: Положение изображения на холсте (Left, Bottom, Top, Right) - **Координаты прямоугольника**: Поля ввода для точного задания координат (X1, Y1, X2, Y2) - **Кнопки управления**: - "Нарисовать" — создать прямоугольник по введенным координатам - "Очистить" — удалить текущий прямоугольник - "Выбрать изображение" — загрузить новое изображение - "Сохранить в базу данных" — сохранить текущую аннотацию - "Показать историю" — просмотр всех сохраненных аннотаций ### Функции базы данных При сохранении аннотации в базу данных записывается следующая информация: - Имя файла изображения - Размеры изображения - Координаты прямоугольника (относительно изображения) - Размеры прямоугольника - Координаты изображения на холсте - Дата и время создания записи ## Структура базы данных Таблица `annotations` содержит следующие поля: - `id` — уникальный идентификатор - `filename` — имя файла изображения - `image_width`, `image_height` — размеры изображения - `x1`, `y1`, `x2`, `y2` — координаты прямоугольника - `rectangle_width`, `rectangle_height` — размеры прямоугольника - `image_left`, `image_bottom`, `image_top`, `image_right` — положение изображения - `created_at` — временная метка создания ## Горячие клавиши и управление - **ЛКМ на угловом маркере** + **перетаскивание** — изменение размера прямоугольника - **Изменение размеров окна** — автоматическое масштабирование изображения - **Поля ввода координат** — поддержка ручного ввода значений ## Особенности - Автоматическое центрирование изображения на холсте - Ограничение минимального размера прямоугольника (10x10 пикселей) - Проверка вводимых данных - Защита от потери данных при закрытии приложения - Читаемый табличный вывод истории аннотаций ## Пример использования 1. Запустите приложение 2. Нажмите "Выбрать изображение" и выберите файл 3. В полях X1, Y1, X2, Y2 введите координаты или оставьте значения по умолчанию 4. Нажмите "Нарисовать" для отображения прямоугольника 5. При необходимости отрегулируйте размер перетаскиванием углов 6. Нажмите "Сохранить в базу данных" 7. Для просмотра всех сохраненных записей нажмите "Показать историю" **Примечание**: При первом запуске приложения автоматически создается файл базы данных `sqlite.db` в текущей директории.