Главное > Программирование

Алгоритмы повышения качества скан изображений

(1/412) > >>

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

AlexN:
Предлагаю обсуждение начать с алгоритмов определения ориентации страницы и устранение наклона (Deskew).
Возьмем реализации алгоритма из проекта PageTools, перебитую monday2000, в которой используется быстрое преобразование Радона:
http://www.djvu-soft.narod.ru/bookscanlib/008.htm
Функция FindSkew, действительно хорошо работает, достаточно высокая скорость работы и точность.  Как работает алгоритм пока не ясно (только начинаю с ним разбираться). Считаю, коллективно нам разобраться будет легче и быстрее, впоследствии можем подумать о возможной оптимизации алгоритма.
Что касается алгоритмов определения ориентации. Честно говоря исходников я не нашел, есть пару статей на английском и все. Пытался решить задачу сам, статистическим методом: результат был только на сканах хорошего качества и угла наклона не более 4 градусов.
Возможно, у кого то есть исходники, было бы интересно посмотреть и обсудить.

monday2000:
AlexN
Добро пожаловать!

--- Цитировать ---Как работает алгоритм пока не ясно.
--- Конец цитаты ---
Попробую тоже посмотреть на него.

--- Цитировать ---Что касается алгоритмов определения ориентации. Честно говоря исходников я не нашел, есть пару статей на английском и все.
--- Конец цитаты ---
А вот этот: http://www.codeproject.com/KB/graphics/Deskew_an_Image.aspx - я не смотрел, но, похоже, это иной алгоритм, построенный на Hough-преобразовании - а не на преобразовании Радона.

Или же вот: http://www.leptonica.com/skew-measurement.html . Исходник там есть - тут: http://www.leptonica.com/download.html . В Scan Tailor вроде бы Deskew именно из Leptonica.

--- Цитировать ---результат был только на сканах хорошего качества и угла наклона не более 4 градусов.
--- Конец цитаты ---
у Вас есть картинки-примеры? Было бы неплохо (хотя, конечно, можно и самому крутануть текст на угол побольше).

AlexN:
В ScanTailor, как вкратце мне сообщил автор, Deskew делается путем поиска такого угла наклона, который максимизирует различия соседних строк в терминах количества черных пикселей.  Сначала делается итеративный поиск с шагом 1 градус, а потом бинарный поиск в сторону лучшего результата. За подробностями естественно в исходники. В перспективе было бы здорово разобраться и с этим алгоритмом.
Вообщем с алгоритмом Deskew дела обстоят не плохо, есть исходники, статьи и главное желание разобраться, а что касается исправления ориентации: в ST исправление ориентации оставлено в ручном режиме, а нас интересует максимальная автоматизация процесса скан обработки.

AlexN:
Для тестирования своих методов я взял 100 отличных сканов наклоненных на произвольный угол, для примера:
http://ifolder.ru/16673435
Я иду таким путем: сначала тестирую метод на идеальных сканах, исследую точность, скорость, затем ухудшаю качество сканов и уже исследую и оптимизирую методы для общих случаев на примере отсканеных мною книг. Возможно, кто- то не согласен с таким подходом, вы меня поправьте.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии