Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Scan Tailor

Модерирует : gyra, Maz

Widok (17-02-2010 12:17): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107

   

Tulon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Scan Tailor

 
Скриншот:

В разработке находится новая альтернатива СканКромсатору. Разработчик - ваш покорный слуга.
Задача программы - пост-обработка сырых сканов с целью их последующей сборки в PDF или DJVU.
 
Уже есть на что посмотреть, и возможно присоединиться к проекту. Проект с открытыми исходниками и кросс-платформенный (Windows + Linux).
 
По сравнению со СканКромсатором планируется большее удобство использования, большая интерактивность, но при этом не меньшая автоматизация процесса.
 
Сайт проекта: http://scantailor.sf.net     Скриншоты
 
Топик программы на форуме Натахаус       Англоязычный топик по ScanTailor

Документация
 
Документация (Wiki)              Зоны картинок в ScanTailor
 
Статья: Scan Tailor. Программа для обработки отсканированных книг
 
Видеоурок: Создание DjVu с помощью Scan Tailor (зеркало)
 
Методика использования STA совместно с Djvu Imager

Дистрибутивы
 
Версия СТ с функцией выпрямления искривленных строк (dewarp от Rob)
 
Патч от anagnost96 Вариант ScanTailor с этим патчем (STA)  Зеркало
 
ScanTailor для Mac
 
Последние изменения в дереве исходников - для сильно любопытных и владеющих английским.
Там же можно подписаться на rss/atom - для нетерпеливых.
 

Дополнительно
 
ST GreyText v1.0 Программа для генерации вывода как бы "Только текст (в режиме серого)" - для Scan Tailor от anagnost96.
 
LayerTailor Программа для разделения сканов (после "Смешанный режим) на foreground и background слои с целью последующего раздельного кодирования в djvu. Принцип работы: Все черные пиксели (яркость==0) переносятся в foreground, остальное - в background. Функция layer принимает на входе 3 параметра: исходное имя файла TIFF, имя файла для foreground и имя файла background. Автор: U235.
 
Предложения к anagnost96 по поводу улучшения его модификации СТ
Сравнение выпрямления искривленных строк в СТ и в BR

Статья О возможности альтернативы СканКромсатору     Полезные ссылки по теме топика
ArtScan - ещё одна программа для сканобработки.

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 21:37 15-06-2008 | Исправлено: ndch, 22:37 12-02-2010
Arcand

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
denver 22
Цитата:
2-й раз мне такое говорят. А как вообще это проверяется? И какие признаки (чтобы заподозрить неладное)?
Дпи прописывается (не во всех форматах), чтобы перевести пиксельный размер изображения в линейный. В Ирфане несложно изменить дпи (в пакетном режиме тоже). Некоторые проги всегда прописывают при сохранении свое дпи, например, стандартный виндовый Paint 120.
Сканы 300 дпи стандартного формата (А5) имеют пиксельный размер около 1500х2400. Если размеры скана (по виду стандартного формата) заметно отличаются от этих значений, значит у них другое дпи. Чтобы прикинуть реальное дпи я смотрю сколько пикселей приходится на 7 строк - это и есть дпи. Это правило опытное. При печати в один интервал на дюйм приходится строго 6 строк. В книгах плотность выше - на дюйм приходится около 7 строк.

Всего записей: 2493 | Зарегистр. 28-05-2004 | Отправлено: 06:42 06-02-2009
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tulon
Я почитал документацию - http://scantailor.wiki.sourceforge.net/
Оформлена весьма прилично - даже со скриншотами. Радует то, что теперь в отношении хелпа Вы превзошли bolega по всем статьям. Очень хорошо.
Теперь по существу: как-то неожиданно воспринимается следующая фраза:

Цитата:
поскольку в отличии от конвейера на заводе, где "сначала все изделия проходят одну стадию, потом следующую", в Scan Tailor "сначала одно изделие проходит все стадии, потом следующее".

Довольно непривычно. И, строго говоря, это не конвейер - потому что, как Вы правильно заметили, краеугольный принцип конвейера именно в том и состоит, что "сначала все изделия проходят одну стадию, потом следующую". Я не просто так умничаю - дело в том, что это и есть главный секрет высокой производительности конвейера. Иначе бы на всех заводах делали бы, как Вы - "сначала одно изделие проходит все стадии, потом следующее". Наверняка существует даже какое-нибудь теоретико-научное обоснование, почему "сначала все изделия проходят одну стадию, потом следующую" гораздо производительнее и удобнее во всех смыслах, чем "сначала одно изделие проходит все стадии, потом следующее".
Но даже и чисто в житейском смысле - гораздо удобнее делать многократно одну и ту же манипуляцию - по ходу дела сам подстраиваешься под неё.
 
Далее:
 
Меня сильно смущает Ваш подход - "сначала полный цикл обработки, и только потом вывод". А что, если мне нужно, например, просто разрезать сдвоенные развороты пополам - и я больше ничего не хочу делать со сканами? Не секрет, что многие горе-книгоделы именно так и поступят - всегда в будущем - как бы мы ни упрощали последующую (после разрезки) интеллектуальную обрезку а-ля СК-Draft Kromsate - Process!.
 
PS Всё же меня лично радует такой неплохой прогресс в отношении Вашей программы. Надеюсь, в дальнейшем Вам удастся преодолеть все возникающие трудности и довести программу до ума.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 09:29 06-02-2009
Tulon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
denver 22

Цитата:
Цитата:
Прелесть этого метода в том, что он не зависит от DPI.  Впрочем разделять на классы все равно приходится, и разделение таки зависит от DPI.
 
Что означает сея фраза? Что при 300 и 600 dpi будет разное качество очистки?  

Это означает, что такой метод более толерантен к неправильному DPI.  В прочем зависимость от DPI все равно осталась при классификации объектов по размерам.
 
Arcand

Цитата:
Некоторые проги всегда прописывают при сохранении свое дпи, например, стандартный виндовый Paint 120.  

Скорее всего эти 120 DPI - разрешение монитора.
А насчет семи строк - полезный совет.  Надо будет делать соответствующий инструмент для СТ, но это уже после редактирования списка файлов проекта.
 
monday2000

Цитата:
Довольно непривычно. И, строго говоря, это не конвейер - потому что, как Вы правильно заметили, краеугольный принцип конвейера именно в том и состоит, что "сначала все изделия проходят одну стадию, потом следующую". Я не просто так умничаю - дело в том, что это и есть главный секрет высокой производительности конвейера. Иначе бы на всех заводах делали бы, как Вы - "сначала одно изделие проходит все стадии, потом следующее".

Это всего-лишь деталь реализации.  Упомянул я ее только для того, чтобы объяснить, почему сохраняются результаты только последней стадии, а не всех.  В случае СТ никакой выгоды от "сначала все проходят одну стадию, потом другую" не получилось бы.
 

Цитата:
Меня сильно смущает Ваш подход - "сначала полный цикл обработки, и только потом вывод". А что, если мне нужно, например, просто разрезать сдвоенные развороты пополам - и я больше ничего не хочу делать со сканами? Не секрет, что многие горе-книгоделы именно так и поступят - всегда в будущем - как бы мы ни упрощали последующую (после разрезки) интеллектуальную обрезку а-ля СК-Draft Kromsate - Process!.

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

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 12:44 06-02-2009 | Исправлено: Tulon, 12:52 06-02-2009
Admig314

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Несколько наблюдений.
 
Во-первых с последними билдами вылетов больше на моих сканах не наблюдалось. Ура!
Субъективно все стадии обработки вплоть до вывода производятся заметно быстрее.
Последняя, преобразование в BW и собственно вывод - очень долго. Оно и понятно, разрешение все-таки 1200. Качество результата просто отличное!
Однако визуально картинка кажется несколько жирноватой, контуры букв утолщенные против желаемого. Дело здесь, думается, в том, что когда электронный макет печатается в типографии, краска в зависимости от сорта бумаги слегка расплывается. Если теперь результат отсканировать, обработать "by ST" и снова напечатать, ужирнение будет еще больше.
Не знаю, насколько это вписывается в планы, но мне, как просто пользователю, хотелось бы видеть более тонкий результат. Или, может быть, интерактивный контроль "степени жирности" - регулировку порога при преобразовании в BW.
Для сравнение выкладываю две обработки одной и той же страницы. Одна в ST, другая ручная в фотошопе: Remove Noise (NeatImage) - Smart Blur - Curves - Convert to BW (50%).
Обратите, например, внимание на слившийся перенос в 17-й строке снизу.
ScanTailor
Photoshop
 
Далее, на последней стадии обработки очень сильно тормозятся вообще все остальные процессы на компе. Параллельная работа становится практически невозможной. Понятно, что идет интенсивная математика, но с другой стороны тот же фотошоп не самая легкая прога, и даже если обработка в нем идет долго, то работу других процессов это не настолько сильно тормозит. Возможно ли ожидать какой-либо подвижки в этом направлении?
 
И еще. В корне диска C: при успешном завершении проекта регулярно создается пустая папка cache, при том что проекты у меня находятся на другом диске.
 
Добавлено:
И кстати, в приведенном скане после обработки ST Rev.267 пропали многоточия - например 21, 22, 23 строки снизу

Всего записей: 17 | Зарегистр. 19-12-2005 | Отправлено: 15:28 06-02-2009
Tulon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Admig314

Цитата:
Последняя, преобразование в BW и собственно вывод - очень долго. Оно и понятно, разрешение все-таки 1200. Качество результата просто отличное!  

Сейчас при увеличении разрешения вывода в два раза, производительность падает аж в 16 раз!  Просто ужас.  А все из-за того, что я когда-то подобрал идеальные параметры для полиномиального фильтра (тот самый Savitzky-Golay) для 300 DPI, а для более высоких разрешений просто увеличиваю размер окна фильтрации.  А ведь можно вместо увеличения размера окна понижать степень полинома, а можно и то и другое сразу.  В общем я сейчас как раз занимаюсь подбором хороших параметров для разных разрешений, чтобы размер окна держать в разумных пределах.
Также пробовал для поднятия производительности генерировать код, заточенный под конткретные размеры окна и под конкретный процессор прямо во время выполнения программы (с помощью LLVM).  Получил ускорение в четыре раза, в независимости от разрешения.  Но архитектура этого LLVM показалась мне настолько убогой, что желание его использовать быстро пропало.
Кому сильно интересны мои претензии (а поймут это только программисты, да и то далеко не все), вот:
1. Почему ExecutionEngine может быть только в одном экземпляре?  Разработчики утверждают, что ради производительности.  А я, как Станиславский скажу "НЕ ВЕРЮ!".
2. Ладно, допустим поверил.  Тогда почему он не Singleton а обычный класс?
3. А почему он не делает межпотоковую синхронизацию, а вместо этого просто выставляет свой мьютекс в публичный доступ?  Надо полагать тоже ради производительности?
4. Не люблю фабричные методы, которые возвращают мне объекты по указателю.  Люблю чтобы по умному указателю, пусть даже по auto_ptr.  А то совершенно непонятно, кто владеет этим объектом и кто должен его удалять.
В общем такой многообещающий проект, но такая говеная архитектура.
 

Цитата:
Однако визуально картинка кажется несколько жирноватой, контуры букв утолщенные против желаемого. Дело здесь, думается, в том, что когда электронный макет печатается в типографии, краска в зависимости от сорта бумаги слегка расплывается. Если теперь результат отсканировать, обработать "by ST" и снова напечатать, ужирнение будет еще больше.  

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

Цитата:
Не знаю, насколько это вписывается в планы, но мне, как просто пользователю, хотелось бы видеть более тонкий результат. Или, может быть, интерактивный контроль "степени жирности" - регулировку порога при преобразовании в BW.  

Регулировка порога есть в планах, но в отдаленных.
 

Цитата:
Далее, на последней стадии обработки очень сильно тормозятся вообще все остальные процессы на компе. Параллельная работа становится практически невозможной. Понятно, что идет интенсивная математика, но с другой стороны тот же фотошоп не самая легкая прога, и даже если обработка в нем идет долго, то работу других процессов это не настолько сильно тормозит. Возможно ли ожидать какой-либо подвижки в этом направлении?  

Да, тут на одном только despeckle потребляется 12 байт на пиксель + еще черыре байта на одном из его этапов.  Итого имеем: картинки 10000 на 14000 пикселей,   Выходит 10*14*10^6*16 = больше двух гигабайт.  Ого - сам не ожидал такого.
 

Цитата:
И еще. В корне диска C: при успешном завершении проекта регулярно создается пустая папка cache, при том что проекты у меня находятся на другом диске.

Это интересно.  У кого-нибудь еще такое наблюдается?

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 16:17 06-02-2009
Tulon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Создание папки C:\cache исправил - она создавалась при закрытии проекта.
 
Deskpeckle сделаю опцию отключить.  Можно было бы сделать ползунок уровня deskpeckle, но в таком случае потом будет проблематично изменить алгорим - может измениться смысл этого ползунка.  А в будущем можно даже специально защитить круглые объекты (точки) от удаления.
 
Уменьшить потребление памяти при deskpeckle в принципе можно (обрабатывать изображение частями), но это не так то просто сделать.  Отложу это на потом.

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 20:35 06-02-2009
denver 22

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Однако визуально картинка кажется несколько жирноватой, контуры букв утолщенные против желаемого.

Я давно заметил, что ST утолщает буквы. Но по сравнению с остальными проблемами, на этой внимание не акцентировал. Теперь поддержу: +1. Хотелось бы, чтобы толщина букв оставалась как на оригинале.

Всего записей: 602 | Зарегистр. 28-07-2005 | Отправлено: 21:59 06-02-2009
savage2000

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Olive77

Цитата:
Если намек не был понят, то дверьку я уже указывал.
Спасибо за дверку!
 
monday2000 Ответ в твоем персональном топике.

Всего записей: 102 | Зарегистр. 07-12-2002 | Отправлено: 11:11 07-02-2009 | Исправлено: savage2000, 11:11 07-02-2009
denver 22

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, давайте возьмем пример Tulon - побольше медитации. Просто не обращайте внимание на этого человека. По себе скажу, мне намного легче стало. Пусть живет в своём мирке. Он ведь все равно не успокоится, а тема засоряется припираниями. Забейте на него 100%-ный ИГНОР и все станет намного проще.
Лучше мы поможет Tulon-у в тестировании и развитии программы. Вместе с этим поможем и себе, получив прекрасную программу сканобработки.

Всего записей: 602 | Зарегистр. 28-07-2005 | Отправлено: 12:02 07-02-2009
Tulon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В полный игнор не обязательно - когда разговор идет по существу, я и отвечаю по существу, а когда начинается обсуждение личностей, тогда и игнор.

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 12:09 07-02-2009
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tulon

Цитата:
Это может более или менее сносно работать, но тут есть пара проблем:
1. Объекты классифицируются по количеству пикселей, а не по ширине / высоте объекта.
2. У меня реализован только прямоугольный dilate, что нежелательно в данном случае.
 
В общем на тот момент когда я прочел ваш пост, я уже реализовал это на базе Voronoi Diagram, благо соответствующий класс у меня уже был.  Работает достаточно бысто, правда памяти много жрет - аж 12 байт на пиксель.

1. Думаю что, ничего страшного, т.к. объекты для удаления сами по себе небольшого размера.
2. Это тоже будет работать.
12 байт/пиксель(1 бит) - многовато... Даже если делать полный Labeling с RegionProps как в Matlab выйдет возможно меньше  
(Функция RegionProps - создает структуру, в которой хранится номер объекта, его положение, число пикселей, сама битовая маска и др. свойства, которые, ИМХО, могут быть полезны в дальнейшем развитии программы, например для выделения текста,исправления кривизны строк, интелектуального удаления грязи на bw изображении).
 
denver 22

Цитата:
Вы пожалуйста тоже делайте сборки (если не трудно). Я не уверен, что теперь делаю все правильно.

Я сейчас занимаюсь автоматизией всего процесса: выкачки из svn, правки Version ,сборки и выгрузки на свой сайт через ftp (Rev.268). Надеюсь, как только допишу и отлажу скрипт - сборки будут появлятся в течение нескольких часов после обновления в svn.
 

Всего записей: 885 | Зарегистр. 14-12-2005 | Отправлено: 12:33 07-02-2009
Tulon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U235
Вот только чем labelling поможет для нахождения ближайших соседей?
 
У меня в классе InfluenceMap для каждого пикселя хранится следующая информация:
1. Номер соединенного компонента, в зоне влияния которго находится данный пиксель. (4 байта)
2. Вектор от данного пиксела до ближайшего пикселя соединенного компонента. (2x2 байта)
3. Квадрат расстояния до ближайшего пикселя соединенного компонента. (4 байта)
Ну а кроме этого я держу вспомогательный массив, где для каждого компонента хранятся его характеристики, например колличество пикселей.
В принципе квадрат расстояния можно было бы исключить, потому как его можно вычислить из вектора.  Он хранится для ускорения постороения этой карты влияний, которая по сути дела есть ни что иное, как диаграмма Вороного.
Строится эта карта влияния методом vector propagation.
 
Ну а наличие соседних объектов я проверяю так:
Пробегаю по карте влияний, и если два соседних пиксела находятся в разных зонах влияния, то из двух векторов получаю расстояние между влияющими объектами.  Потом исходя из размеров компонентов, вычисляю порог расстояния, и если реальное расстояние меньше порога, тогда объект помечается как не мусор.  

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 13:38 07-02-2009
denver 22

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rev.267:
- Тестирование на проекте последнего моего примера (см. выше) примера: Качество очистки в плане сохранения полезного контента улучшилось. На большинстве "сложных" рисунков сохранилось практически всё. Исчезли единичные точки, что (на мой взгляд) никак не отразилось на качестве рисунка.
 
Далее - http://narod.ru/disk/5524292000/Scan-Test-267.7z.html:
- aa_0006-стр.8.tif, aa_0007_стр.11.tif, aa_0014-стр.24.tif, aa_0036-стр.69.tif - на указанных страницах в полезную область вкобчены жирные точки, находящиеся на значительном расстоянии от области текста. Хоть таких примеров оказалось достаточно много, но для меня ситуация терпима. Скидываю, так сказать, для профилактики.
- Despeckling: aa_0023.tif, 0042_aa_0023.tiff - пример неприемлемой очистки; aa_0034.tif, 0064_aa_0034.tiff - удалена часть пунктирных линий; aa_0040.tif, 0077_aa_0040.tiff - в нескольких местах текст стал нечитаем. А также, как минимум в 6-ти случаях у двоеточий пропала нижняя точка.
- Вылетает программа. Ошибка воспроизводится. Не знаю как вам её представить, поэтому скидываю всю книгу - (ссылка). Судя по thumbs, ошибка возникает на aa_0176 (последний thumbs - aa_0175).

Всего записей: 602 | Зарегистр. 28-07-2005 | Отправлено: 13:50 07-02-2009
Arcand

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Не знаю, насколько это вписывается в планы, но мне, как просто пользователю, хотелось бы видеть более тонкий результат. Или, может быть, интерактивный контроль "степени жирности" - регулировку порога при преобразовании в BW.  
Может имеет смысл добавить возможность смещать по желанию вычисленный порог в Otsu.
Кстати, плагин подобного рода планирую сделать, для коллекции

Всего записей: 2493 | Зарегистр. 28-05-2004 | Отправлено: 15:05 07-02-2009
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tulon

Цитата:
Вот только чем labelling поможет для нахождения ближайших соседей?

Сам по себе - никак не поможет.  Это больше, ИМХО, вспомогательная операция, с результатом которой можно работать как с базой данных объектов и их свойств + при относительно небольшом числе объектов это возможно еще и сэкономит память.
 
Нельзя ли в  вашем алгоритме все объекты попробовать заменить  точкой, в центре масс каждого объекта? Думаю это не сильно скажется на результатах, но упростит вычисления. Хранить данные при этом возможно лучше будет в виде: №объекта, x,y,S-количество пикселей (площадь).  
 
Кстати, возможно бдет интересно:http://rrc.dgu.ru/res/matlab/imageprocess/book3/13/bwmorph.html
рис г. - по сути диаграма Вороного для рис. в., получаемая через бинарную морфологию.
 

Всего записей: 885 | Зарегистр. 14-12-2005 | Отправлено: 16:41 07-02-2009
Tulon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
denver 22

Цитата:
- aa_0006-стр.8.tif, aa_0007_стр.11.tif, aa_0014-стр.24.tif, aa_0036-стр.69.tif - на указанных страницах в полезную область вкобчены жирные точки, находящиеся на значительном расстоянии от области текста. Хоть таких примеров оказалось достаточно много, но для меня ситуация терпима. Скидываю, так сказать, для профилактики.  

Пока я пожалуй оставлю стадию "Полезная область" в покое.  Лучшее - враг хорошего.
 

Цитата:
- Вылетает программа. Ошибка воспроизводится.

Исправил.
 
Arcand

Цитата:
Может имеет смысл добавить возможность смещать по желанию вычисленный порог в Otsu.  

Может так и сделаю, но не сейчас.
 
U235

Цитата:
Сам по себе - никак не поможет.  Это больше, ИМХО, вспомогательная операция, с результатом которой можно работать как с базой данных объектов и их свойств + при относительно небольшом числе объектов это возможно еще и сэкономит память.  

Labeling в чистом виде у меня тоже есть.  Класс называется ConnectivityMap.  Для каждого пикселя в ней хранится идентификатор соединенного компонента, к которому он принадлежит.  Кстати из нее и строится InfluenceMap - отсюда и дополнительные 4 байта на пиксель.
При желании можно выдирать компоненты один за другим.  Для этого есть классы ConnCompEraser (когда не нужно изображение компонента) и ConnCompEraserExt (когда нужно).
 

Цитата:
Нельзя ли в  вашем алгоритме все объекты попробовать заменить  точкой, в центре масс каждого объекта? Думаю это не сильно скажется на результатах, но упростит вычисления. Хранить данные при этом возможно лучше будет в виде: №объекта, x,y,S-количество пикселей (площадь).  

Можно то можно, но уж больно грубо получается - считать любой объект кругом.
 
 
 
Добавлено:
Еще я сделал отключение despeckle и вручную подобрал параметры смягчения для разных DPI.  Это должно повысить скорость вывода на высоких DPI.
Вроде как теперь ничего не мешает сделать оффициальный релиз.

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 17:31 07-02-2009
denver 22

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U235
На счет автоматизации - рад слышать. Значит мне теперь только тестировать программу останется . Тогда помимо выкладывания в топике, обновляйте пожалуйста и ссылку в шапке.

Всего записей: 602 | Зарегистр. 28-07-2005 | Отправлено: 18:10 07-02-2009
Tulon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Тогда помимо выкладывания в топике, обновляйте пожалуйста и ссылку в шапке.

Можно просто дать в шапке ссылку на директорию, куда у него выкладываются сборки.  Так не придется каждый раз обновлять шапку.

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 18:17 07-02-2009
denver 22

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сборка (Rev.271) в шапке
 
Добавлено:

Цитата:
Пока я пожалуй оставлю стадию "Полезная область" в покое.  Лучшее - враг хорошего.

Полностью - ЗА. На данный момент меня вполне устраивает качество. Просто отписываю лишний раз с примерами.

Всего записей: 602 | Зарегистр. 28-07-2005 | Отправлено: 20:06 07-02-2009
denver 22

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вроде как теперь ничего не мешает сделать оффициальный релиз.

Полностью ЗА.
В новой версии сделал свой проблемный (с вылетом) проект. Больше не упал.
Качество despeckle порадовало. Не знаю, улучшали ли вы его со сборки 267, но он сохранил практически все точки в полезной области. Только на одном скане получилось так, что в одном рисунке точки сохранились (где он раньше удалил бы их), а на другом рисунке - частично вычистил.
Но теперь, когда despeckle можно выключать для отдельного скана, можно решать подобные проблемы.
От себя могу сказать, что оставшиеся порядка 30 книг скорее всего буду обрабатывать именно в ST!!! Т.к. и качество на уровне, и гибкость настройки стала такой, чтобы справляться с большинством проблем.
Может успеете перед релизом добавить упомянутую ранее функцию, чтобы после Пакетной обработки программа переходила в первому скану?

Всего записей: 602 | Зарегистр. 28-07-2005 | Отправлено: 22:08 07-02-2009
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107

Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Scan Tailor
Widok (17-02-2010 12:17): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru