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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Открыть новую тему     Написать ответ в эту тему

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Scan Tailor


Задача программы - пост-обработка сырых сканов книг для последующей сборки в PDF/DJVU,CBR/CBZ и т.д.
Программа обеспечивает большое удобство для использования, большую интерактивность и не меньшую автоматизацию процесса (по сравнению со СканКромсатором).
Кросс-платформенный (Windows,Mac OS, Linux) проект с открытыми исходниками.


Англоязычный топик по ScanTailor
Ветки:
Scan Tailor Plus (Vadim "DikBSD" Kuznetsov) >>>  последняя версия   (Отличия от авторской версии)
Scan Tailor Еnhanced (Petr "pejuko" Kovar) >>>  последняя версия   (Отличия от авторской версии)
Scan Tailor Featured (monday2000) >>>  последняя версия   (Отличия от авторской версии)
Scan Tailor Advanced (4lex4) >>>  последняя версия (Отличия от авторской версии); ветка develop
 
Документация:
Документация (Wiki) | Зоны картинок в ScanTailor | ScanTailor. Быстрое начало | Видеоуроки и скринкасты новых функций СТ от Tulona
Статья: Scan Tailor. Программа для обработки отсканированных книг
Видеоурок: Создание DjVu с помощью Scan Tailor (зеркало)
Использование Scan Tailor совместно с Djvu Imager (сборка djvu методом разделенных сканов)
Как собрать Scan Tailor из исходных кодов под Windows
Почему нельзя сделать сплошную нумерацию вывода


Автор проекта - Tulon. Почему его здесь не видно? .
DikBSD автор ветки ScanTailor Plus история повторяется.
Юзеры! Будьте скромнее!


Дистрибутивы, форки, дополнения

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:17 17-02-2010 | Исправлено: ndch, 16:47 18-07-2018
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обновил версию на офсайте
 
https://sourceforge.net/projects/scantailor/files/scantailor-devel/featured/

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 22:13 23-03-2013
iit512

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
Решил наконец попробовать Featured. К сожалению, код под Linux не компилируется (при этом самые последние и Plus, и Enhanced компилируются безо всяких проблем).
Вот что происходит: http://pastebin.com/1B9AKgNN

Всего записей: 176 | Зарегистр. 18-05-2005 | Отправлено: 01:19 24-03-2013
monday2000

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

Цитата:
код под Linux не компилируется

Ничем не могу помочь. Линукса у меня нет (и даже нет возможности поставить), да и вообще - далёк я от него. А сами Вы не можете отладить код, чтобы он скомпилировался? Если проблема лежит в плоскости CMake - то в нём я абсолютно не разбираюсь. А это похоже на CMake - раз проект под винду собирается корректно, а под Linux - нет.
 
Я добавлял в проект класс ExportDialog - и прописывал его в CMake (по подсказке Tulon). Возможно, я недостаточно модифицировал CMake при этом.
 
Попробуйте обратиться к специалисту по Linux.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 18:43 24-03-2013
iit512

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Жаль. Стало быть, не попробую Featured
===
Может быть, стОит написать в README, что исходники не кросс-платформенные?

Всего записей: 176 | Зарегистр. 18-05-2005 | Отправлено: 06:44 25-03-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iit512
Попробуйте вот это скомпилировать. Если не получится - опять дайте лог ошибок.
http://rghost.ru/44769613
 
Добавлено:
Scan Tailor Featured 2013.03.25
 
http://rghost.ru/44769669
 
 
 
Добавлено:
В этой сборке я начал эксперименты с формой зоны Test. Я взял за основу форму "Обведённая" - т.е. "обведённую прямоугольником" зону (PictureShape-зону).
 
Как я уже писал ранее, одним из недостатков PictureShape является то, что она слишком сильно обводит исходную зону - получается значительная синяя окантовка между реальной картинкой и получаемой зоной.
 
Но если применить обычную исходную зону - то она, хоть и не имеет такой неприятной окантовки, но зато контур её получается весь в микрозубцах - как подводная часть корпуса корабля, обросшая ракушками.
 
Я слегка доработал алгоритм PictureShape. Принцип действия доработки такой:
 
1. Я назначил произвольный порог - 25%. Взял просто с потолка это значение.
 
2. Беру верхнюю горизонтальную границу PictureShape-зоны. В цикле перемещаюсь от неё внутрь фигуры (т.е. цикл по горизонтальным рядам зоны). На каждом шаге цикла в другом цикле прохожу по всем словам (32-битным) этой стороны зоны. Если текущее слово - целиком белое - увеличиваю построчный счетчик белых слов.  
 
3. После каждого прохода цикла по словам (внутреннего) смотрю - если отношение счетчика белых слов к количеству слов стороны зоны больше порога (25%) - то выхожу из внешнего цикла, считая при этом, что я нашёл истинную границу прямоугольной фигуры.
 
4. Повторяю то же самое для оставшихся 3-х сторон PictureShape-зоны. Только для левой-правой сторон вместо слов использую, разумеется, просто пиксели. Я ещё, кстати, намаялся писать функции getPixel/setPixel для Tulon'ского класса BinaryImage (удовольствие ниже среднего) Вот они - для интереса:

Цитата:
void
BinaryImage::setPixel(int x, int y, BWColor color)
{
        uint32_t* line = this->data() + m_wpl * y;
 
        (color == WHITE) ? line[x >> 5] &= ~(0x80000000 >> (x & 31)) : line[x >> 5] |= (0x80000000 >> (x & 31));
}
 
BWColor
BinaryImage::getPixel(int x, int y)
{
        uint32_t* line = this->data() + m_wpl * y;
 
        return (BWColor)((line[x >> 5] >> (31 - (x & 31))) & 1);
}

 
То, что получилось, можно увидеть в сегодняшней сборке при использовании Test-зоны. Сравните её результат с зоной "Обведённая" - наверняка увидите разницу. Test-зона - это всегда производная от обведённой и всегда меньше её.
 
О принципе работы Test-зоны: я подумал - что есть шероховатости ("зазубрины", "шипы", неровные края) оригинальной авто-зоны с точки зрения алгоритмики? Это всего лишь в достаточной мере прерывистый прямолинейный контур. И задача удаления этих шипов сводится к постепенному "срезанию" (допустим, попиксельному) найденного контура - до тех пор, пока уровень прерывистости контура не достигнет какой-то величины. Я выбрал - 25%, но не факт, что это наилучшая цифра.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 21:24 25-03-2013
iit512

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Увы. Вот лог: http://pastebin.com/eudTeLrs

Всего записей: 176 | Зарегистр. 18-05-2005 | Отправлено: 04:07 26-03-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iit512
Попробуйте вот это скомпилировать. Если не получится - опять дайте лог ошибок.
http://rghost.ru/44792221

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 19:12 26-03-2013
monday2000

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

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 19:23 27-03-2013
iit512

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://pastebin.com/e2CPgbrf

Всего записей: 176 | Зарегистр. 18-05-2005 | Отправлено: 20:46 27-03-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iit512
Попробуйте ещё раз:
http://rghost.ru/44823552

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 21:27 27-03-2013
iit512

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Теперь продвинулось гораздо дальше (хотя и с warning'ами), но в конце все равно вылетело с ошибкой -- http://pastebin.com/9VcYvHfH

Всего записей: 176 | Зарегистр. 18-05-2005 | Отправлено: 11:44 28-03-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iit512
ещё раз
http://rghost.ru/44853735

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 23:07 28-03-2013
iit512

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скомпилировался, работает!!! Спасибо! Разделенный вывод мне ни к чему, а вот прямоугольные зоны и управление деформацией -- гениально!
В конце компиляции были несколько warnings -- возможно, Вам будет на них интересно посмотреть -- http://pastebin.com/feGAsAJ4
 

Всего записей: 176 | Зарегистр. 18-05-2005 | Отправлено: 09:10 29-03-2013
monday2000

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

Цитата:
Спасибо!

Пожалуйста.

Цитата:
В конце компиляции были несколько warnings

Да, интересно. Я их тоже исправил и после этого залил полностью исправленные исходники и собранный из них инсталлятор на http://sourceforge.net/projects/scantailor/files/scantailor-devel/featured/
 
Добавлено:
По поводу исправлений исходников:
 
Самое первое исправление было на тему порядка компиляции. Я в одной из фич использовал передачу между объектами указателя на класс MainWindow - вот поэтому порядок компиляции (наверное, в CMake) видимо, и сбился. Но так как я потом уже нашёл вариант без передачи этого указателя - то я его просто убрал и всё.
 
Второе и последующее исправление были простыми и однотипными: ошибки были из-за того, что Ваш компилятор не мог понять мои параметры функций по умолчанию. Например, QImage& image = QImage() - в Windows это компилируется без проблем. Сначала я попробовал изменить это на QImage& image = (QImage&)(QImage()) - под Windows это работало - но у Вас опять не заработало. Тогда уж я поставил самый простой вариант: QImage* p_image = NULL - это и на деревянных счетах должно было заработать. И оно-таки заработало. Просто мне потом пришлось разыменовывать везде эти p_image - ну не самая большая проблема.
 
Предупреждения были не опасные: оказывается, надо применять инициализаторы полей класса в том же порядке, в каком идут их объявления в классе - иначе у Вас сыпались предупреждения. Под Windows такого я не видел.
 
В общем, не исключено, что проблема не совсем в другой операционной системе - а может, просто в Вашем компиляторе, или даже в его опциях - тем более, что других обращений ко мне по этому поводу не было.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 20:33 29-03-2013
LazyKent

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

Цитата:
проблема не совсем в другой операционной системе - а может, просто в Вашем компиляторе

Это же стандартный компилятор — GCC. http://ru.wikipedia.org/wiki/GNU_Compiler_Collection
 

Цитата:
других обращений ко мне по этому поводу не было

Ничего не обещаю, но в выходные попробую.

Всего записей: 174 | Зарегистр. 17-08-2006 | Отправлено: 22:52 29-03-2013
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bolega сделал свой клон Scan Tailor - "Scan Tailor Complete":
 
http://forum.ru-board.com/topic.cgi?forum=5&topic=29984&glp

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 12:29 01-04-2013
unreal666



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

Цитата:
bolega сделал свой клон Scan Tailor  - "Scan Tailor Complete":

где ты там это увидел?

Всего записей: 6570 | Зарегистр. 14-02-2005 | Отправлено: 13:42 01-04-2013
LazyKent

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Собрал пакеты scantailor-featured для openSUSE.
Скомпилировалось нормально. Все возможности не проверял, но в целом работает.
Файлы переводов в пакете scantailor-featured-lang.
 
http://software.opensuse.org/search?q=scantailor-featured

Всего записей: 174 | Зарегистр. 17-08-2006 | Отправлено: 15:57 01-04-2013
anagnost96

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробовал наконец ST Featured. Новые прямоугольные зоны очень понравились, но обнаружилась такая проблема (система SuSE Linux): при попытке экспорта создаются сначала папки "export\1" и "export\2", а потом куча файлов с именами вида "export\1\XXXX.tif". Т. е. очевидно, что в коде жестко прописано использование символа backslash в качестве разделителя без учета того, что не для всех систем это приемлемо.
 
Кроме того, обнаружил, что утилита экспорта (по крайней мере, на моей системе) весьма неспешно реагирует на нажатие кнопки "отмена": остановить процесс удалось только после десятка судорожных кликов (за это время ST успел экспортировать еще несколько страниц) и настойчивого предложения системы снять задачу как зависшую. Возможно, на это стоит обратить внимание, поскольку для столь чувствительной к ресурсам операции, как экспорт, возможность быстрого прекращения пользователем является критичной.
 
И несколько замечаний по интерфейсу. Переименование прямоугольных зон в обведенные IMHO неудачно, т. к. заставляет предположить, что эти зоны обведены контуром. Т. е. по мне лучше было бы как раз новые зоны называть обведенными, а для старых (растровых) оставить название прямоугольных. Далее, несколько напрягает тот факт, что закрытие диалога "Экспорт" осуществляется кнопкой "OK", хотя по смыслу это скорее Cancel. "Редкие опции" -- это то, что обычно принято называть "Advanced", а по-русски, скажем, "Расширенные настройки". И вообще в русском языке нежелательно пользоваться словом "опция": почему, например, не "настройка" или "параметр"? И, наконец, кнопки "Экспорт" и "OK" по смыслу относятся ко всему диалогу в целом, а не к отдельной вкладке, поэтому, наверное, они должны быть доступны и при открытой вкладке "Редкие опции" (как бы ее ни называть) тоже. Или, может быть, лучше было бы убрать эту вкладку из данного диалога вообще и перенести ее в диалог настроек программы.

Всего записей: 132 | Зарегистр. 01-05-2009 | Отправлено: 13:05 02-04-2013 | Исправлено: anagnost96, 13:08 02-04-2013
monday2000

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

Цитата:
в коде жестко прописано использование символа backslash в качестве разделителя без учета того, что не для всех систем это приемлемо.  

Да! Спасибо за подсказку. Исправил, вот исходники:
 
http://rghost.ru/44998785
 
Если можно - протестируйте их в Linux (на предмет этой ошибки), пожалуйста.
 
Добавлено:

Цитата:
неспешно реагирует на нажатие кнопки "отмена"

Это я знал с самого начала. Исправлять не буду - нет ни времени, ни желания. Да и непросто это - надо делать отдельный поток. Можете сами сделать - Вы же умеете СТ программировать.

Цитата:
Т. е. по мне лучше было бы как раз новые зоны называть обведенными, а для старых (растровых) оставить название прямоугольных.  

"Новые" - это какие? Векторные прямоугольные? Так какие же они "обведённые"? Или Test-зоны? Test-зонам я ещё дам отдельное специальное название. А обведённые зоны я, может быть, вообще уберу потом из программы - потому что их заменят Test-зоны (я их ещё доработаю). Не нравится "обведённые" - предложите своё наименование, отличающееся от "прямоугольные".

Цитата:
осуществляется кнопкой "OK", хотя по смыслу это скорее Cancel.

Переименовал её в "Закрыть" ("Close").

Цитата:
"Редкие опции" -- это то, что обычно принято называть "Advanced", а по-русски, скажем, "Расширенные настройки".

А я хочу именно "Редкие", потому что никакие это не "Расширенные". Я хочу именно подчеркнуть, что это опции, которые нужны 1-2% пользователей. "Расширенные" - это такие, которые нужны всем, точнее только тем из "всех", кто хочет получить более изысканный результат - вот что такое "Расширенные".

Цитата:
И вообще в русском языке нежелательно пользоваться словом "опция": почему, например, не "настройка" или "параметр"?

Ну чем Вам "опция" не угодила? Вполне ведь употребляемое в русском языке слово (особенно в компьютерных программах). По мне так лучше "Редкие опции", нежели чем "Редкие параметры" или "Редкие настройки" (звучит ИМХО гораздо корявее). Тогда уж надо писать "Редкие настройки экспорта" - а это слишком длинно.

Цитата:
они должны быть доступны и при открытой вкладке "Редкие опции" (как бы ее ни называть) тоже.

Возможно, но этим я тоже не буду заниматься. Лень. Да и лазить на ту вкладку обычным юзерам и не надо - а только редким.
 
Добавлено:
unreal666

Цитата:
где ты там это увидел?

С первым апреля! А вообще было бы недурно, верно?

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 21:26 02-04-2013 | Исправлено: monday2000, 21:45 02-04-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Компьютерный форум Ru.Board » Компьютеры » Программы » Scan Tailor (часть 2)

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru