Все статьи
24 сентября 2026 г.8 мин чтения

После разметки повернули скан: как пересчитать координаты ячеек

После разметки повернули скан: как пересчитать координаты ячеек

Если координаты ячеек уже отмечены, а затем вы повернули, выровняли или обрезали скан, старые рамки могут указывать на другое место. Чтобы извлечь буквы без сдвига, нужно либо сначала окончательно подготовить изображение, а потом построить сетку, либо применить к координатам ту же геометрическую операцию. Разберём оба пути, ручную проверку и безопасный порядок действий.

Почему после поворота правильная сетка становится неправильной

Разметка ячеек привязана к конкретному изображению и его системе координат. На растре начало координат обычно находится в левом верхнем углу: горизонтальная координата растёт вправо, вертикальная — вниз. Рамка буквы хранится как набор пиксельных точек или как прямоугольник с левым верхним углом, шириной и высотой. После поворота меняются положение этих точек и, иногда, ширина и высота всего изображения. Лист выглядит привычно, но сохранённые числа продолжают описывать прежний растр.

Поэтому ошибка бывает обманчивой. Первая ячейка может попасть почти точно в цель, а соседние — постепенно уходить в сторону; крайние строки режутся сильнее центральных; или карта символов остаётся логичной, но содержимое рамок перестаёт ей соответствовать. Это не обязательно плохая разметка. Часто она просто пережила поворот, обрезку или изменение размера отдельно от исходника.

Важно различать поворот изображения и поворот телефона при съёмке. Если лист снят под углом, исправляют перспективу самого изображения. Здесь речь о другом: оператор уже поставил рамки на файле, после чего изменил этот файл. Решение зависит от того, может ли программа преобразовать вместе с пикселями связанные координаты.

Перенести разметку или построить её заново

Сначала остановитесь до извлечения и оцените, что именно изменилось. Если выполнен только поворот на 90, 180 или 270 градусов и известны размеры исходного файла, рамки можно перенести математически. Если применили произвольный угол, перспективную коррекцию, выравнивание по углам, деформацию листа или кадрирование, безопаснее построить сетку поверх итогового файла. Эти операции могут менять размер холста и начало координат; одной догадки о направлении уже недостаточно.

Оставьте исходный скан отдельным файлом и сохраните обработанный результат как новую версию. Не перезаписывайте источник: он нужен, чтобы повторить преобразование или вернуться к разметке, если проверка покажет ошибку. Запишите, где находится окончательный файл и какие действия над ним выполнены. Если проект или маска хранится отдельно, убедитесь, что они связаны именно с этой версией растра, а не с ранее открытым оригиналом.

  • Только поворот на прямой угол без кадрирования и масштабирования — перенесите координаты точным преобразованием или перестройте сетку, если это надёжнее.
  • Поворот на произвольный угол — проверьте размер нового холста и заново разметьте сетку по линиям.
  • Обрезка, коррекция перспективы, выправление изгиба или изменение размера — стройте координаты на итоговом изображении.
  • Неизвестный порядок обработки — не переносите рамки на глаз; вернитесь к исходнику и повторите преобразования по порядку.

Как пересчитать координаты при повороте на 90 градусов

Если исходный растр не масштабировали и не обрезали, поворот на 90 градусов можно проверить формулой. Пусть ширина изображения — W, высота — H, а точка пикселя задана парой (x, y): x отсчитывается слева, y сверху, индексация начинается с нуля. При повороте по часовой стрелке новая точка будет (H − 1 − y, x); размеры растра поменяются местами: ширина станет H, высота — W. При повороте против часовой стрелки точка станет (y, W − 1 − x). При повороте на 180 градусов она перейдёт в (W − 1 − x, H − 1 − y).

Формулы полезны для точек, узлов сетки и масок, но прямоугольник нельзя переносить, если повернуть только его левый верхний угол и оставить прежние ширину и высоту. Преобразуйте все четыре угла рамки, затем найдите минимальные и максимальные x и y. Они зададут ограничивающий прямоугольник в новой ориентации. При повороте на четверть оборота ширина и высота рамки тоже поменяются местами. Для границ ячеек предпочтительнее переносить линии сетки или все углы, а не только origin.

Проверьте, как редактор трактует правый и нижний края: форматы могут хранить расстояние между границами или координату последнего пикселя. Поэтому сначала преобразуйте один контрольный прямоугольник в углу и один в противоположной части листа. Если оба попадают в нужные ячейки, переносите сетку целиком; если нет — отмените его и размечайте итоговый растр заново.

Безопасная последовательность обработки шаблона

1. Зафиксируйте источник и ориентацию

Сохраните исходный файл без изменений. Определите, правильно ли ориентирован лист и каковы размеры изображения. Если шаблон состоит из нескольких страниц или кадров, сначала установите их порядок и соберите итоговое полотно. Не размечайте отдельные кадры, если затем будете объединять их: после склейки у сетки могут измениться начало и смещение.

2. Выполните все преобразования изображения

Поверните скан, выровняйте лист, при необходимости обрежьте поля и задайте итоговый размер. Сохраняйте понятные копии: например, «исходник», «выровненный скан» и «финал для извлечения». После разметки не меняйте размер документа. Если позднее нужно поправить ориентацию, исправьте картинку и вернитесь к построению сетки.

3. Сверьте рамку листа и ориентиры

До нанесения сетки проверьте, видны ли углы и опорные метки шаблона. Сопоставьте горизонтальные и вертикальные линии листа с краями изображения. Осмотрите первую, среднюю и последнюю строки: после выравнивания локальная погрешность может быть заметнее на дальнем краю. Если ячейки на бумаге имеют разную ширину или лист изогнут, не заставляйте их соответствовать равномерной прямоугольной сетке без проверки.

4. Постройте сетку на финальном растре

Создавайте границы ячеек уже на обработанном изображении. Если сетка задаётся по четырём углам, проверьте все четыре, затем промежуточные линии. Если редактор использует общие параметры ширины, высоты и шага, убедитесь, что каждый ряд остаётся совмещённым с печатной разметкой. Для неодинаковых ячеек используйте локальные границы, если инструмент это позволяет, вместо идеальной модели, которая расходится с листом.

5. Сделайте контрольное извлечение

Не запускайте обработку всего алфавита сразу. Выберите четыре-пять клеток: верхнюю левую, верхнюю правую, нижнюю левую, нижнюю правую и одну центральную. Убедитесь, что каждая вырезка содержит ожидаемый знак, не захватывает соседа и сохраняет штрих целиком. Затем сверьте порядок строк и столбцов с картой шаблона. Только после этой проверки переходите к остальным клеткам.

Как понять, что координаты всё ещё смещены

Не оценивайте только первую вырезку. Если ошибка одинаковая на всём листе, вероятно, сетка перемещена целиком или рассчитана от неправильного начала координат. Если сдвиг увеличивается от края к краю, проверьте масштаб, угол или шаг сетки. Если центр совпадает, а углы расходятся, ищите перспективную деформацию, изгиб страницы или неодинаковую ширину ячеек. Если рамки верны, но знаки стоят не в тех позициях, проблема скорее в порядке строк, столбцов или карте символов.

Для диагностики покажите поверх растра все границы ячеек, а рядом — несколько тестовых вырезок с их координатами или именами. Если края сетки совпадают только в одном углу, не поправляйте отдельно каждую букву. Вернитесь к преобразованию изображения или к модели сетки. Ручная коррекция единичных рамок может скрыть системную ошибку и осложнить повторную обработку.

Чек-лист перед массовым извлечением

  • Исходный скан сохранён отдельно и не перезаписывался.
  • Поворот, выравнивание, кадрирование и изменение размера завершены до построения сетки.
  • Проект разметки связан с той же финальной версией изображения, которая открыта на экране.
  • Углы листа, опорные метки и промежуточные линии ячеек совпадают с растром.
  • Проверены клетки в четырёх углах и в центре.
  • Тестовые вырезки содержат ожидаемые знаки и не захватывают соседние штрихи.
  • Порядок строк и столбцов сверен с картой символов.

Частые ошибки

  • Повернуть изображение после разметки и считать, что сетка повернётся вместе с ним. Связь зависит от программы — проверяйте рамки на растре.
  • Сместить все прямоугольники одинаково, хотя ошибка растёт к краям. Это может быть неверный масштаб или шаг, а не единый сдвиг.
  • Повернуть только одну точку рамки и сохранить прежние ширину с высотой. Преобразуйте все четыре угла.
  • Обрезать поля после нанесения сетки, не учтя новое начало координат. Кадрирование сдвигает координаты относительно исходного полотна.
  • Проверить одну букву в центре. Это не выявит расхождение у краёв и ошибку в крайних ячейках.
  • Сразу извлечь весь лист. Массовая обработка увеличит последствия неверной разметки и усложнит исправление.

Вопросы и ответы

Можно ли просто повернуть сетку вместе с изображением?

Можно, если редактор сохраняет сетку как связанный слой и преобразует его одновременно с изображением. Если координаты хранятся отдельно, подтвердите совмещение контрольными рамками. Визуального поворота слоёв недостаточно, пока не проверено, что они используют одну систему координат.

Что делать, если изображение повернули на произвольный угол?

Если рамки не преобразовались вместе с растром, обычно надёжнее построить сетку заново по выровненному изображению. Поворот может изменить размер холста и расположение краёв; также потребуется интерполяция пикселей. Убедитесь, что лист целиком помещается на холсте и опорные линии читаемы.

Нужно ли заново размечать ячейки после кадрирования?

Если обрезка выполнена до разметки, нет. Если после, координаты нового холста смещаются на величину обрезанных слева и сверху областей. Их можно скорректировать, когда эти величины известны точно и кадрирование не сопровождалось масштабированием. Иначе лучше заново проверить или построить границы.

Почему первые буквы попадают в рамку, а последние нет?

Так может выглядеть накопившаяся ошибка шага: каждая следующая ячейка получает небольшое отклонение, которое заметнее в конце строки. Проверьте ширину начальной и конечной ячеек, поворот, масштаб и точку привязки. Не исправляйте только последнюю рамку, пока не нашли источник нарастающего сдвига.

Как быстро проверить, что старые координаты пригодны?

Покажите сетку поверх итогового изображения и сравните четыре крайние клетки с одной центральной. Извлеките эти знаки отдельно и убедитесь, что рамки не пересекают соседей и не режут штрихи. Если тест проходит в разных частях листа и порядок символов сохраняется, разметку можно использовать дальше.

Что важнее сохранять: координаты или исходное изображение?

Сохраняйте и то и другое, вместе с точной связью между ними. Координаты без указания версии растра трудно повторить, а один растр без разметки заставит делать работу заново. Храните исходник, финальный обработанный файл, карту ячеек и краткую запись порядка преобразований.

Сетка ячеек — это разметка конкретной версии изображения. Завершите поворот, выравнивание и обрезку, затем стройте сетку и проверяйте её по краям и в центре. Если растр изменился после разметки, преобразуйте координаты точно или создайте новую разметку; несколько контрольных вырезок покажут, можно ли продолжать извлечение. Для следующего шага используйте Fontgenerator, чтобы превратить проверенные символы в собственный шрифт.