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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Tulon

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

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 10:43 11-07-2009
dma200899

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Происходит падение в следующей ситуации
с проектом:
http://www.onlinedisk.ru/file/176904/
 
Делаю следующие шаги:
1) загружаю файлы.
2) предлагает поправить дпи 200*200 для первых двух страниц, ставлю 300*300
 
Вот тут закавыка. Последняя страница чужого скана разворотами - "половинная". В списке файлов на исправление дпи её нет, поэтому я ее игнорирую. (но это легко могла бы быть страница реально отсканированная с другим дпи).
 
Кстати, странно - это реально скан в 200 дпи. Поэтому хорошо бы в встроенной справке к проге иметь объяснение логики выбора. Я помню, что где-то на форуме было, но искать каждый раз, когда она тебе это предлагает - тяжело.
И непонятно, почему 200*200 я задать не могу (хоть это проге и не нравится но ведь это реальная цифра. Просигналило об опасности - я подтвердил, что да это так. Зачем фальшивый дпи 300 рисовать ?)
 
3) делаю макет на автомате
4) обнаруживаю, что последняя страница больше по физическому размеру
5) иду в "исправление ориентации" и удаляю ее из проекта
 
(Кстати, ведь если не знать, то так и не догадаешься, что вставка и удаление страниц возможны в этой стадии. Я, например, пока на форуме на прочел не догадался. Предлагал же много раз сделать нулевую стадию - формирование пакета и правка дпи).
 
Увы, поправить дпи для этой обнаруженной страницы в проекте невозможно. Только пересобрать проект заново. Ну и удаляешь ее, чтобы не портила размеры книги, а потом ее отдельно вставим.    
 
6) жму макет
7) падение
 
(раньше в этой ситуации "залипали" размеры широкие размеры для всех страниц, хотя задавшая их страница удалялась)

Всего записей: 126 | Зарегистр. 29-06-2008 | Отправлено: 15:35 11-07-2009 | Исправлено: dma200899, 15:39 11-07-2009
dma200899

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Столкнулся вот еще с чем.
 
Сканы пронумерованы
Scan1, ..., Scan9, Scan10, ..., Scan 99, Scan100...Scan 333
 
При загрузке в проект и первой обработке СТ расположил все в правильном порядке.
Сохранил проект. Загрузил по новой и они оказались все расположены в "перепутанном"
Скан1
Скан10
Скан100
Скан2
Скан20
Скан200

Всего записей: 126 | Зарегистр. 29-06-2008 | Отправлено: 03:45 12-07-2009
iit512

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вообще, последние сборки не берут многие сканы, видимо, по каким-то эзотерическим причинам, связанным с DPI. Откатился на сборку 382, с ней все нормально. Нехорошо получается. Может быть, стОит снять эти ограничения? Или хотя бы добавить какие-нибудь вразумительные сообщения, кода нельзя импортировать сканы в проект?

Всего записей: 177 | Зарегистр. 18-05-2005 | Отправлено: 07:16 12-07-2009
dma200899

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

Всего записей: 126 | Зарегистр. 29-06-2008 | Отправлено: 07:32 12-07-2009
ndch

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

Цитата:
серию сборок выложить с описаниями чем различаются.

 
http://scantailor.svn.sourceforge.net/viewvc/scantailor?view=rev&revision=389
Log Message:    Performance improvements for the Savitzky-Golay filter.
и т.д. - курить до умопомрачения
 
http://scantailor.svn.sourceforge.net/viewvc/scantailor?view=rev&revision=387
Log Message: Change some UI text.
 
Сильно любопытные могут курить "text changed"
 
 
Добавлено:
iit512

Цитата:
по каким-то эзотерическим причинам, связанным с DPI

Причина dpi<150 или разрешение=размеру. Никакой эзотерики.
Предупреждения действительно не помешали бы.
 
СТ изначался предназначался для обработки сырых сканов книг - отсюда растут причины того что высота букв должна быть более 10 пикселей - а это в среднем означает разрешение сканирования не менее 150 dpi.
 
автора задолбало наличие shit-сканов (dpi<150 dpi) и сканов у которых разрешение == размеру (есть такие софтины/сканеры) и связаные с этим глюки СТ.

Всего записей: 5056 | Зарегистр. 31-08-2008 | Отправлено: 12:14 12-07-2009
Tulon

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

Цитата:
Вообще, последние сборки не берут многие сканы, видимо, по каким-то эзотерическим причинам, связанным с DPI. Откатился на сборку 382, с ней все нормально. Нехорошо получается. Может быть, стОит снять эти ограничения? Или хотя бы добавить какие-нибудь вразумительные сообщения, кода нельзя импортировать сканы в проект?

Никто похоже не заметил, но сообщения все-же есть.  Если DPI красный, можно навести на него мышкой, и сообщение будет в тултипе.
 
Еще раз повторю причины жесткого контроля DPI:
1. Меньше 150 DPI - это скорее всего DPI экрана, а не сканирования.  Получается в результате обработки сырых сканов некоторыми программами.  Если же DPI действительно меньше 150 - такой исходный материал лучше вообще не обрабатывать, по крайней мере в ST.  Автоматические алгоритмы (главным образом Полезная Область) с таким качеством не справляются, геометрические преобразования и сглаживание приводят к потере деталей, которых при таком разрешении и так слишком мало.  А потом еще не исключены сообщения сюда, типа "Полезная Область плохо работает - в половине случаев руками править приходится".
2. Если физические размеры, вычисленные из DPI и пиксельных размеров выходят слишком большими.  Сейчас это > 40 см, но походу это слишком строго - сделаю 50.  Этот случай более редкий, например книга отсканирована в 600 DPI, а в файлах прописано 300.  Это чревато падениями от нехватки памяти.  Например в этом случае потребление памяти возрастет в 4 раза, по сравнению с тем, что было бы, если бы было указано правильное DPI, то есть 600.  А если бы скажем было указано 150, а в реале 600, то потребление памяти вырасло бы уже в 16 раз [квадрат от отношения правильного DPI к неправильному].  Кстати стоит потреблению памяти вырасти до 3 (может двух - не уверен) гигов, никакой файл подкачки уже не поможет - будет исчерпано адресное пространство.

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В ленте предпросмотра (на стадии выводы) ОЧЕНЬ не хватает порядковых номеров.
Щас контролирую смешанный/чб/цветной вывод через прсомотрщик
а поскольку сканы то двусторонние, то нет нумерация сбивается.
Хотелось бы видеть ID страницы и на ленте предпросмотра и у файла.

Всего записей: 126 | Зарегистр. 29-06-2008 | Отправлено: 15:37 12-07-2009
Tulon

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

Цитата:
В ленте предпросмотра (на стадии выводы) ОЧЕНЬ не хватает порядковых номеров.  
 Щас контролирую смешанный/чб/цветной вывод через прсомотрщик  
 а поскольку сканы то двусторонние, то нет нумерация сбивается.  
 Хотелось бы видеть ID страницы и на ленте предпросмотра и у файла.  

С этими ID один гемморой.  Проблема в том, что они не постоянны.  Вставил файл в проект - все последующие ID сбились.  Изменил тип разреза - то же самое.  Я вынашиваю мысль совсем от них отказаться.  Выводить файлы вида orig_name_L.tiff и orig_name_R.tiff соответственно для левой и правой половинки.

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

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

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

Хорошо, что есть сообщения. Прошу прощения, что я их не заметил.
 
Странно, что Вас не удивляет тот факт, что сборка 382 обрабатывает сканы, и выдает приемлемый результат, а сборка 386 отказывается импортировать те же самые сканы. На мой взгляд, в таком направлении софт развиваться не должен. Получается, что вместо того чтобы помогать пользователям, программа начинает им мешать.
 
Что касается контроля DPI, то Вы исходите из Ваших предположений о том, какие должны быть сканы. Эти предположения ограничены просто по определению. Надо, на мой взгляд, исходить из того, что сканы могут быть любые, а программа должна постараться как-то с ними помочь. Печально, что, по опыту этого топика, спор в этом месте с Вами бессмысленен -- я могу Вам прислать сканы, а Вы либо (1) откажетесь, поскольку это редкая задача, либо (2) измените программу, чтобы она начала понимать эти типы сканов, что не снимает общей проблемы. Прошу меня простить, если сказал что-нибудь неприятное. Сказанное ни в коей мере не умаляет моего восхищения программой и Вами.
 
Практический вывод я сделал для себя такой -- оставляю сборку 382 (раньше я старые сборки стирал).  
 
Добавлено:

Цитата:
Я вынашиваю мысль совсем от них отказаться.

Поддерживаю.

Всего записей: 177 | Зарегистр. 18-05-2005 | Отправлено: 22:01 12-07-2009
Tulon

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

Цитата:
Странно, что Вас не удивляет тот факт, что сборка 382 обрабатывает сканы, и выдает приемлемый результат, а сборка 386 отказывается импортировать те же самые сканы. На мой взгляд, в таком направлении софт развиваться не должен. Получается, что вместо того чтобы помогать пользователям, программа начинает им мешать.  

Ну так исправте DPI, если они неправильные, а если правильные, и >= 150, то пример в студию.
 

Цитата:
Что касается контроля DPI, то Вы исходите из Ваших предположений о том, какие должны быть сканы. Эти предположения ограничены просто по определению. Надо, на мой взгляд, исходить из того, что сканы могут быть любые, а программа должна постараться как-то с ними помочь. Печально, что, по опыту этого топика, спор в этом месте с Вами бессмысленен -- я могу Вам прислать сканы, а Вы либо (1) откажетесь, поскольку это редкая задача, либо (2) измените программу, чтобы она начала понимать эти типы сканов, что не снимает общей проблемы. Прошу меня простить, если сказал что-нибудь неприятное. Сказанное ни в коей мере не умаляет моего восхищения программой и Вами.  

Ну не бывает так - должна обрабатывать любые сканы с любыми DPI.  Я уже привел пример, к чему ведет указание DPI сильно меньше реального - к нехватке памяти.
Реально низкий DPI тоже ничего хорошего - вы ведь не расчитываете, что FineReader возьмет скан в 150 DPI, да еще и чем-то уже обработанный?

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 00:40 13-07-2009
iit512

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

Всего записей: 177 | Зарегистр. 18-05-2005 | Отправлено: 06:24 13-07-2009
dma200899

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а вот еще наблюдение - не знаю это происки винды или в программе так заложено.
 
Кручу колесико мышки вниз, листая ленту предпросмотра. Выбираю допустим "левые страницы". Из-за вкладок они расположены хаотично и выбор четных/нечетных не работает.
Если контрол не держать, то 1 проворот колесика мышки=1 страница.
Но тогда нажал-отпустил-нажал-отпустил-нажал-отпустил контрол для выделения.
Это во-первых неудобно. Во-вторых - стоит один раз недонажать контрол и все выделение исчезает. А если там сотня страниц ?
Удобнее контрол зажать и держать. Благо все опции СТ при этом доступны.
Но !
При зажатом контроле один проворот колёсика = 2-3 страницы. И нужные мне страницы просто проскакивают мимо видимой части ленты.
Нельзя ли это чем отрегулировать: число страниц ленты на одно вращение колесика при зажатом контроле (ну или шифте) ?
 
 

Всего записей: 126 | Зарегистр. 29-06-2008 | Отправлено: 08:07 13-07-2009 | Исправлено: dma200899, 08:14 13-07-2009
anagnost96

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tulon
 
Нужно обработать альбом с большим количеством иллюстраций, ввиду чего хотелось бы хотя бы для себя и временно хакнуть СТ, отломав объединение текста и картинок. Скажем, на 300 dpi выводим только картинки, а на 600 -- только текст. Не подскажете, где копать в исходниках?

Всего записей: 132 | Зарегистр. 01-05-2009 | Отправлено: 11:55 13-07-2009
Tulon

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

Цитата:
Нужно обработать альбом с большим количеством иллюстраций, ввиду чего хотелось бы хотя бы для себя и временно хакнуть СТ, отломав объединение текста и картинок. Скажем, на 300 dpi выводим только картинки, а на 600 -- только текст. Не подскажете, где копать в исходниках?

Подскажу.
 
В файле filters/output/OutputGenerator.cpp, в функции processImpl(), есть такой код:

Код:
 
        if (maybe_normalized.format() == QImage::Format_Indexed8) {
            combineMixed<uint8_t>(
                maybe_normalized, bw_content, bw_mask
            );
        } else {
            assert(maybe_normalized.format() == QImage::Format_RGB32
                || maybe_normalized.format() == QImage::Format_ARGB32);
            
            combineMixed<uint32_t>(
                maybe_normalized, bw_content, bw_mask
            );
        }
 

Так вот, если перед combineMixed поставить в первом случае:
maybe_normalized.fill(0xff);
а во втором:
maybe_normalized.fill(0xffffffff);
то получите только текст, а если вместо этого в обоих случаях сделать:
bw_content.fill(WHITE);
то получите только картинки.  Впрочем и картинки и текст будут на белом фоне, а хотелось бы наверное что-то из них - на прозрачном.  Это тоже решаемо, но не двумя строками.
Ябы на вашем месте собрал две версии СТ - одна будет выдавать только текст, другая - только графику.  Кстати текст в режиме Cмешанный не идентичен тексту в режиме "Черно-белый" при наличии картинок.  Дело в том, что присутствие полутоновых картинок ухудшает качество бинаризации.  В режиме "Смешанный" картинки игнорируются при бинаризации.
Еще один момент - последняя версия Qt (4.5.2) не собирается с теми опциями, что я ей даю под MinGW.  Под Visual Studio 2008 - собирается, но там процедура сборки не до конца документирована.  Qt 4.5.0 собирается везде.

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 00:37 14-07-2009
anagnost96

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

Цитата:
В файле filters/output/OutputGenerator.cpp, в функции processImpl(), есть такой код:  

 
Огромное спасибо, сам бы ни за что не догадался! Сделал пока так:
 

Код:
 
        if (m_dpi.horizontal() > 500)
            maybe_normalized.fill(0xff);
        else
            bw_content.fill(WHITE);
 

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

Цитата:
Впрочем и картинки и текст будут на белом фоне, а хотелось бы наверное что-то из них - на прозрачном.

 
Нет, для кодирования в DjVu это не нужно: из черно-белого изображения получается маска (в формате JB2), а у нее фон по определению прозрачный.
 

Цитата:
Еще один момент - последняя версия Qt (4.5.2) не собирается с теми опциями, что я ей даю под MinGW.

 
Это мне без разницы: я в Линуксе

Всего записей: 132 | Зарегистр. 01-05-2009 | Отправлено: 12:04 14-07-2009
dma200899

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот сейчас опять размеры страницы залипли.
 
Вставил в проект страницу с большими пиксельными размерами.
Увеличился размер страниц.
удалил страницу из проекта.
Широкие размеры страниц остались и не сокращаются.

Всего записей: 126 | Зарегистр. 29-06-2008 | Отправлено: 08:19 16-07-2009
Tulon

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

Цитата:
Вставил в проект страницу с большими пиксельными размерами.  
 Увеличился размер страниц.  
 удалил страницу из проекта.  
 Широкие размеры страниц остались и не сокращаются.

Проблема понятна.  Исправлю до следующего релиза.

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пора серьезно взяться за проблему со случайными падениями.  Где падает я знаю, благодаря краш репортам, теперь надо выяснить почему.  Собрал специальную сборку, которая при падении в этом месте будет оставлять на рабочем столе файл ST_crash.txt с полезной информацией.  Вы его открываете, и copy-paste'ите сюда.
 
Добавлено:
Специальная сборка

Всего записей: 718 | Зарегистр. 07-05-2008 | Отправлено: 19:44 18-07-2009
dma200899

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pt: (903.006, 600)
img.bits(): 0x78c29e0
img.size(): 23x17
clip: (747, 602), 250x96
sr: (0, 12), 23x6
alpha: 256
x: 903, y = 602
iw: 23, ih = 4
srcBits: 0x78c2ee8
srcBytesPerPixel: 4
srcBPL: 92
rasterBuffer->buffer(): 0x3330000
rasterBuffer adjusted: 0x358ae1c
rasterBuffer->size(): 1024x719
dstBytesPerPixel: 4
dstBPL: 4096
 
Добавлено:
pt: (902.595, 256)
img.bits(): 0x116e79d8
img.size(): 23x17
clip: (747, 258), 250x440
sr: (0, 4), 23x14
alpha: 256
x: 903, y = 258
iw: 23, ih = 12
srcBits: 0x116e7c00
srcBytesPerPixel: 4
srcBPL: 92
rasterBuffer->buffer(): 0x3330000
rasterBuffer adjusted: 0x3432e1c
rasterBuffer->size(): 1024x719
dstBytesPerPixel: 4
dstBPL: 4096

Всего записей: 126 | Зарегистр. 29-06-2008 | Отправлено: 09:12 19-07-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru