2010-12-03 2 views
0

Я немного ошеломлен своей задачей. У нас есть инструментарий, который мы используем для TWAIN-сканирования. Некоторые из наших клиентов жалуются на более медленные скорости сканирования, когда установлена ​​опция deskew. Это связано с тем, что, если их сканер не поддерживает аппаратное обеспечение, это делается в пост-обработке на CPU. Мне было интересно, знает ли кто-нибудь о хорошем (то есть быстро) алгоритме для этого. Мне трудно сказать, какой алгоритм мы используем сейчас. Какие алгоритмы существуют для этого и как они оценивают скорость и точность? Если бы я знал имена алгоритмов, мне было бы легче выполнить поиск в Google.Самый быстрый алгоритм?

Thank you. -Tom

+0

"Image deskew algorithm". Купите: http://www.leadtools.com/help/leadtools/v15/DocumentImaging/default.htm?turl=WordDocuments%2Fdocumentcleanupkeyfeatures1.htm – 2010-12-03 20:14:34

+0

в C++ http://www.sydlogan.com/deskew.html – 2010-12-03 20:38:42

ответ

3

Вы сканируете цвет или Ч/Б?

Deskew - это интенсивный процессор. Группу 4 tiff или JPEG необходимо разжать, определить угол наклона, скорректировать, а затем сжать.

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

Самый быстрый коммерческий стол, который я использовал, поступает из Unisoft Imaging (www.unisoftimaging.com). Я предполагаю, что большая часть его написана на ассемблере. Unisoft существует уже много лет и очень быстро и эффективно. Он поддерживает различные различные варианты оформления стола, включая удаление черных границ, цвет и черно-белое изображение. Процедуры Group4 очень прочные и очень быстрые. Библиотека поставляется со многими другими функциями обработки изображений, а также с поддержкой TWAIN и встроенного сканера SCSI. Он также поддерживает Unix.

Если вы хотите получить бесплатный номер, то вы можете взглянуть на Лептонику. Он не содержит слишком много документации, но очень стабилен и хорошо написан. http://www.leptonica.com/

Разработка кода с нуля может быть довольно трудоемкой и может быть довольно ошибочной и подверженной ошибкам.

Другой вариант - обработать документ в отдельном процессе, чтобы сканирование могло выполняться со скоростью сканера. На данный момент вы, вероятно, обрабатываете все параллельно, одну задачу за другой, отсюда и замедление.

0

Рассматривайте это как постобработку, потому что столик не может быть выполнен в режиме реального времени (если только это не аппаратное ускорение).

Deskew состоит из двух шагов: обнаружения перекоса и вращения. Обнаружение угла наклона обычно можно выполнить на изображении B & W (1 бит) быстрее. Скорость вращения зависит от качества интерполяции. Хорошее качество стола займет много времени, а не сканирование страниц.

Хороший высокоскоростной сканер может выполнять 120 двусторонних страниц в минуту, если у него есть сжатие в формате JPEG или TIFF Group 4, и ваша библиотека TWAIN использует его (подсказка: не используйте собственный режим). У вас едва хватает времени для сохранения файла на жесткий диск с такой скоростью, не говоря уже о распаковке, искажении, вращении, повторном сжатии. Quality deskew занимает несколько секунд на страницу, если вы не можете использовать аппаратный ускоритель видеокарты для вращения и сжатия.

0

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

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

Посмотрите на http://pagetools.sourceforge.net. Они имеют алгоритм алгоритма.

Смежные вопросы