Ru-Board.club
← Вернуться в раздел «Программы»

» Scan Tailor: Часть 2

Автор: j52
Дата сообщения: 28.02.2013 20:58
monday2000
Вот-так. Теперь Вы крайний...
И теперь Вам, вместо Tulon-а, (а помните-ка?) придется отбиваться от разных хотелок и псвистелок, дабы не превратить ST в монстроузный мегакомбайн
Автор: LonerDergunov
Дата сообщения: 28.02.2013 23:10
Насчёт такой мега-комбайности как создание pdf-djvu - согласен.


Цитата:
хотелок

Не хватает всё-таки изменения размера (разрешения) файлов в процессе обработки.
Когда одна страница отсканена в одном разрешении, другая - в другом или же когда страницы вытянуты из разных источников или же в одном источнике сделано криво изначально.
Да, можно делать это вручную. Но возникает масса неудобств.
Можно изменять размер страниц перед обработкой в Scan Tailor. Но ведь страницы могут быть сдвоенные, перевёрнутые, необрезанные после сканера, с большими полями и т.д. И сложно представить себе как они будут выглядеть после обработки и будет ли выстваленный размер оптимальным.
Можно менять размер страниц после всех обработок - но опять же неудобство - теряется удобная возможность эспорта субсканов, ведь после обработки в Scan Tailor надо будет еще вручную искать у каких страниц размер не соответствует остальным...
Было бы удобней на этапе 5 помимо выравнивания добавлением белых полей также добавить опцию изменения физических размеров выбранных страниц. Много не надо - уравнять выбранные страницы по большему из размеров, по меньшему и по среднему (для случая если размеры сильно разнятся у многих страниц).

monday2000
Ещё просьба. Взгляните и добавьте, пожалуйста, нормальную обработку подобного:
http://rghost.ru/44181870
В архиве два tiff-файла. В превью Scan Tailor Featured первый отображается как чёрный, второй - нормальное превью. Но при обработке обе страницы отображаются просто как чёрный фон. В Scan Tailor Еnhanced превью не лучше, но при обработке страницы выглядят нормально.
Автор: j52
Дата сообщения: 28.02.2013 23:46
LonerDergunov

Цитата:
Не хватает всё-таки изменения размера (разрешения) файлов в процессе обработки.
Когда одна страница отсканена в одном разрешении, другая - в другом или же когда страницы вытянуты из разных источников или же в одном источнике сделано криво изначально.
... Но ведь страницы могут быть сдвоенные, перевёрнутые, ...

ИМХО, я всегда, перед работой с ST после предварительного просмотра, прогоняю изображения XnView (XnViewMP), он имеет встроенную пакетную обработку и сохранение сценариев обработки. (IrfanView не пользуюсь, на любителя).
Сдвоенные страницы отдельно, одиночные отдельно. Выставляю выходное разрешение и размер, е.надо, добавляю коррекцию яркость/контрастность/гамма и уменьшение шума, е.надо - преобразовать в Gray256. Запустил пакет, и вуаля - все страницы одного DPI и размера. (Иногда бывают исключения... ).
Но впихивать инструментарий редактора изображений (или по сборке djvu) в прогу с совершенно другими задачами, имхо, как раз и может привести к монструозности и мега-комбайности, когда в этом море флажков и настроек юзер просто растеряется.
Пример - ScanKromsator (не для слабонервных...)

Добавлено.
Опять же, ИМХО, сабж занимет свою, и благодаря усилиям разработчиков, достойную нишу в наборе инструментов для "книгоделания".
И всякое стремление "растянуть-раздвинуть" его на соседние ниши приведет только к потере его эффективности. (Тем более, что сабж и так не отличается высоким быстродействием.)
Например, зачем встраивать в него создание djvu, когда уже есть DjVu Small (а для кого-нибудь лучше DjVuEditPro), и почему не создание pdf ?
Или тот-же XnView имеет 9(!!!) методов ресайзинга изображений, и какой-же из них использовать в сабже ?

"Побольше инструментов, хороших и разных"!
Автор: LonerDergunov
Дата сообщения: 01.03.2013 01:43

Цитата:
перед работой прогоняю изображения

Обрезку забыли упомянуть. И выравнивание тоже.
Не всегда все изображения одинаковые. Например, могут быть как частично обработанные страницы, так и сырые сканы (криво положенные на сканер страницы с серыми и белыми краями, которые занимают половину-треть от изображения) или вообще фотки. Или просто необрезанные страницы разного размера. То есть предварительно их надо обрезать, выровнять, сравнить размеры с другими страницами, выбрать оптимальный размер.
В данный момент приходится прогонять сканы через ST дважды. Первый раз - для того чтобы выровнять, обрезать, выбрать полезную область. Потом в каком-нибудь графическом редакторе уже выставлять примерно одинаковые размеры чтобы в ST не добавлялись белые поля на полстраницы. Потом - опять прогонять в ST для окончательной обработки. Можно, конечно, и так, но такой подход выглядит несколько извращённым.
Задача как раз и есть в том, чтобы создать один проект для одной книги/журнала и получить на выходе готовый или почти готовый результат.


Цитата:
с совершенно другими задачами

Если следовать такой логике - то изменение размеров страниц путём добавления белых полей тоже стоит исключить из программы - это ведь совершенно другая задача, к тому же её можно успешно выполнить в пакетном режиме и в стороннем редакторе
Автор: slava_kry
Дата сообщения: 01.03.2013 03:19
LonerDergunov

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

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

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

Такой задачи НИКОГДА не ставилось, да и не будет ставиться.
Как вы собираетесь тягаться с Шопом со всем его функционалом и дополнениями... или Акробатом со всеми его плагами? Каждому своё!
Тем более сейчас есть прекрасная возможность разделять нужный инструментарий в зависимости от квалификации обработчика. И если с ч/б-обработкой он не так велик и разнообразен, то с полноцветом он стремиться к бесконечности.
Автор: ndch
Дата сообщения: 01.03.2013 10:06

Цитата:
Как вы собираетесь тягаться с Шопом со всем его функционалом и дополнениями... или Акробатом со всеми его плагами?

Именно. Дополнять функционал до фотошопа нереально.
Хотя бы на примере шумодавов: это узкоспециализированное направление, сильного аналога среди оперсорсного софта нет и в ближайшее время не намечается. С нуля, забесплатно, писать никто не горит желанием.
Ко всему прочему зачастую шумодав требует ручного вмешательства, поэтому ПОЛНОЙ автоматизации добиться нереально.
Если хочется автоматизации - в фотошопе их есть.
Автор: tlotr
Дата сообщения: 01.03.2013 13:28

Цитата:
tlotr
А нет ли желания вернуться к идее раскрашивания текста?



Цитата:
monday
Реализовать такое - непросто, это как десять экспортов субсканов сделать. Нет у меня времени.



Цитата:
monday
Это сделано для... 2. Цветной текст.


Ура! =)



Добавлено:
Ещё одна мегаполезная фича, которую, как мне кажется, не так сложно было бы реализовать, это ещё один тип (четвёртый) выделения картинок - "лассо". Сейчас, в случае некорректного автоматического определения областей изображений (например, на странице есть рамка, таблица, а сами картинки находятся внутри её) автоматически вся область внутри рамки может быть распознана как изображение и приходится идти на разнообразные ухищрения вроде исключения рамки из автослоя и кропотливого ручного выделения изображений (а они далеко не всегда прямоугольные!), или физического удаления рамки со страницы для того, чтобы алгоритм зацепил бы изображения, находящиеся внутри неё и прочие трудоёмкие костыли.

Хотелось бы иметь возможность указать вручную область и задать в свойствах тип "лассо" или "автоматически найти границы", или как-то иначе обозначить отличный от существующего механизм поиска границ изображений.

Как мне кажется, реализация данной фичи не должна быть дорогой: Сейчас алгоритм уже работает по данному сценарию. Образно: функции F() скармливается вся страница с целью найти и выделить там изображения. Чтобы заработало "лассо" нужно, чтобы функции F() можно было скормить какую-то область страницы, которую пользователь и задаёт рамкой.

По эффективности это была бы чрезвычано востребованная МЕГАФИЧА.
Автор: monday2000
Дата сообщения: 01.03.2013 17:05
LonerDergunov

Цитата:
Но при обработке обе страницы отображаются просто как чёрный фон.

Они сделаны со сжатием JPEG (in TIFF). Это можно увидеть в Irfan View. Так что я не буду это исправлять - есть и более насущные задачи. Эта проблема есть и в официальной версии СТ. Пересохраните сканы в TIFF LZW и всё.


Добавлено:
LonerDergunov

Цитата:
Можно, конечно, и так, но такой подход выглядит несколько извращённым.

СТ создан Tulon'ом как инструмент сканобработки "правильных" исходных сканов. Для переделки плохих сканов он мало приспособлен.

Я так думаю, что криворуко сделанные DjVu-книги, которых в Интернете великое множество, придётся просто пересканировать заново - и сделать уже по-человечески. Вот закончим улучшать СТ - и надо будет продолжить разработку робосканера-автомата. Это должна быть какая-то дешёвая малогабаритная приставка к любому бытовому сканеру, собранная из доступных узлов и деталей. Руками много ведь не насканишь.

tlotr

Цитата:
Ура! =)

Особо радоваться пока не стоит - ничего по цветному тексту в СТ пока нет.

Цитата:
По эффективности это была бы чрезвычано востребованная МЕГАФИЧА.

Лассо мне не нравится - Вы в Фотошопе им не пробовали пользоваться? Далеко не просто. А то, что нужны ещё и какие-то иные алгоритмы полуавтоматической сегментации - дополнительные - это понятно - но я лично об этом даже и не задумываюсь пока. Мне одному со всем этим не справиться.

Автор: tlotr
Дата сообщения: 01.03.2013 18:27

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

Ну, лассо - это просто я его так назвал, потому что, как мне кажется, максимально похоже по принципу действия. А, если не секрет, почему предложенный мной вариант с ограничением области для алгоритма определения границ изображений вам кажется труднореализуемым? Тут не нужна произвольная кривая - достаточно лишь прямоугольника. Не знаю, конечно, как у остальных пользователей СТ, может быть никто и не сталкивается с данной проблемой, но вот лично для меня подобная фича ускорила бы темпы обработки сканов нескольких книг, которые сейчас отложены (по причине как раз отсутствия такой функциональности) в разы. Надеюсь, что всё-таки найдёте возможность реализовать её. Повторюсь: выглядит недорогой по трудозатратам, но эффективной в работе - как раз те самые критерии, которые вы предъявляете к внедряемым вами новым фичам.

Цитата:
Особо радоваться пока не стоит - ничего по цветному тексту в СТ пока нет.

Бррр....! Показалось.
Ну хоть шаги в данном направлении предпринимаются - и то хорошо, что в уме держите!
Автор: monday2000
Дата сообщения: 02.03.2013 20:37
tlotr

Цитата:
Надеюсь, что всё-таки найдёте возможность реализовать её.

Ограничить область действия встроенного в СТ алгоритма авто-распознавания зон задаваемой вручную прямоугольной зоной, что ли?
Автор: LonerDergunov
Дата сообщения: 03.03.2013 03:48
monday2000

Цитата:
Они сделаны со сжатием JPEG (in TIFF). Это можно увидеть в Irfan View. Так что я не буду это исправлять

Это уже частично исправлено в Scan Tailor Еnhanced (превью чёрные, но сами картинки нормальные), так что, наверное ,можно было код оттуда взять. Но нет так нет.


Цитата:
"лассо"

Лучше уж волшебную палочку (или хотя бы ручное задание чувствительности автовыделения для каждой страницы). Но это из области "мечты".

Более реальная просьба по поводу выделения. Нельзя ли сделать автоматически не только подсвечивание зон картинок, но и непосредственного автообведения их красной рамкой? Будет намного наглядней, в первую очередь для картинок не-прямоугольной формы. Ведь всё-равно зоны определяются, выделяются, просто автоматически очерчивать их границы.
Сейчас может оказаться, что часть картинки автоматически выделилась не-полностью (серый полутон не распознался как картинка и ушёл в белый фон). Во-первых, можно этого не заметить и оставить как есть, - в картинке получаются некрасивые проплешины. Во-вторых, границы могут определиться не совсем корректно, и нужно вручную искать недовыделенные фрагменты изображения и пытаться их выделять. Если бы граница была очерчена - было бы гораздо наглядней, сразу видно какая часть изображения не попала в зону картинок. Плюс эту непопавшую зону не пришлось бы рисовать заново, можно было просто потянуть за существующую границу.
Автор: tlotr
Дата сообщения: 03.03.2013 11:21
monday2000

Цитата:
Ограничить область действия встроенного в СТ алгоритма авто-распознавания зон задаваемой вручную прямоугольной зоной, что ли?

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

Автор: balik1982
Дата сообщения: 04.03.2013 20:27
monday2000
хотел біло перейти на вашу версию но столкнулся с тем что здесь отсутствует такая полезная функция какая есть в версии PLUS, а именно в режиме смешанный задать выселение автоматом в прямоугольниках а не фри. картинки с фоном распознаются плохо фон на фотографиях уходит в ч/б диапазон.
или я не разобрался в вашей версии и она есть или большая просьба добавить в вашу модификацию эту функцию
Автор: monday2000
Дата сообщения: 04.03.2013 20:58
LonerDergunov
balik1982
tlotr
Я планирую заняться зонами иллюстраций. Что-нибудь напоминающее то, о чём меня просят, почти наверняка постараюсь сделать. Что именно я сделаю - пока не могу сказать точно - я же ещё не взялся. У меня пока проблемы с последней добавленной фичей - оказалось, что консольный СТ из-за её добавления перестал компилироваться - и я пока не могу найти решение, пока ищу варианты.
Автор: LonerDergunov
Дата сообщения: 04.03.2013 21:04
balik1982

Цитата:
в режиме смешанный задать высделение автоматом в прямоугольниках а не фри

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


Цитата:
картинки с фоном распознаются плохо фон на фотографиях уходит в ч/б диапазон.

См. мои просьбы добавить возможность задания чувствительности зон и о наглядности выделения не-синим цветом, а также про автообводку зон выделения (дабы не вглядываться, а сразу видеть какие именно зоны уходят в ч/б).
Автор: balik1982
Дата сообщения: 04.03.2013 23:04

Цитата:
Автоматизация расстановки прямоугольных зон выделения обещается.

пока только это сдерживает меня от перехода на версию monday2000
Автор: monday2000
Дата сообщения: 09.03.2013 21:52
Сборка 2013.03.09

http://rghost.ru/44385289

Добавлено:
Новая опция:

Picture_Shape

взята из Enhanced в неизменном виде.

Не обошлось без проблем: после перенесения выяснилось, что опция привнесла баг, который в своё время устранил DikBSD:

Цитата:
30.11.2011 Исправил bug - при открытии ранее сохраненного и отработанного проекта на Стадии Вывод. весь проект требовал прогонки заново. Т.е. все миниатюры на ленте имели знак вопроса. Исправлено.

Этот баг порождён именно этой опцией - в том виде, в котором её реализовал автор Enhanced. В самом Enhanced этог баг до сих пор присутствует.

Но я сегодня уже просто не успеваю этот баг исправить "по следам" DikBSD - посмотрю это уже завтра.

Опцию пока просто перенёс и всё. Потом буду, скорее всего, как-то улучшать её. Дело это будет не быстрое, сразу предупреждаю.

Добавлено:
Кстати, опция оказалось довольно здоровенной - по исходным кодам. Я её запарился переносить по кускам. Она даже в консольной версии есть.
Автор: 3y6acTuK
Дата сообщения: 09.03.2013 22:08
Заметил, что ScanTailor портит тонкие элементы на страницах - например, исчезают засечки у шрифта Times.
Исходник - серый TIFF, с черно-белым идеальным шрифтом, отрендеренным из векторного Times в 600 dpi
На выходе:
1) Режим "Черно-белый", с любыми степенями (по-умолчанию, тоньше, жирнее) - невозможно добиться тех же тонких засечек, которые были - они либо исчезают, либо становятся очень жирными - проще говоря, буквы просто сильно огрубляются программой.
2) Режим "Цветной/Серый" - оригинальные засечки у букв таки сохраняются, но становятся серыми! То есть при печати они будут растрироваться.

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

Ну и зачем делать из черно белых линий серые?

(А если даже так надо для внутренней обработки - тогда надо и разрешение для нее повышать, чтобы не терялись мелкие детали в обрабатывемых страницах).
Автор: tlotr
Дата сообщения: 10.03.2013 00:13
monday2000
А можно пояснить в двух словах, в чём конкретно заключается суть данной опции?
Автор: LonerDergunov
Дата сообщения: 10.03.2013 04:58
monday2000
Спасибо большое.
Повторюсь про автоматическую установку границ зон выделения (красную рамочку). Тут она будет более чем кстати.
Сейчас автоматом выделилась прямоугольная зона. Она большая и захватывает ту часть страницы, которая должна быть белым фоном. Нужно вручную рисовать красную рамочку, потом ещё одну рамочку дабы исключить излишки из слоя картинок. Если бы рамка была уже установлена автоматом - достаточно было с зажатым Ctrl лишь потянуть за уголок дабы подправить зону.

Кстати при печати иногда (в старых изданиях) имеется вертикальная чёрточка между буквами - как при печати на печатной машинке. Нет ли у вас планов попытаться автоматизировать удаление этих дефектов печати?

tlotr
Это автоматическое выставление прямоугольной области для прямоугольных зон картинок.
Автор: monday2000
Дата сообщения: 10.03.2013 07:33
LonerDergunov

Цитата:
Нет ли у вас планов попытаться автоматизировать удаление этих дефектов печати?

Это к bolega. Scan Tailor ориентирован на более-менее типовые случаи сканобработки, а ScanKromsator - наоборот.

Цитата:
Тут она будет более чем кстати.

Оконтуривать автоматическую прямоугольную Picture_Shape-зону ручной прямоугольной зоной автоматически? Точнее, оформлять автоматическую прямоугольную Picture_Shape-зону не в виде растрового объекта, а в виде прямоугольной пользовательской (векторной) зоны?

Добавлено:
А если на странице несколько зон, и все слишком разные? Как быть?

Добавлено:
Кстати, я ещё не пробовал - если сейчас на странице несколько зон, они все "оквадратятся" или нет. И что делать, если нужно лишь избранные зоны сделать квадратными, а другие оставить в покое.

Добавлено:
Может, Picture_Shape вообще надо было вынести в контекстное меню зоны?
Автор: amaid
Дата сообщения: 10.03.2013 07:44

Цитата:
Это автоматическое выставление прямоугольной области для прямоугольных зон картинок.

отлично! пора хватать
Автор: monday2000
Дата сообщения: 11.03.2013 21:58
Сборка Scan Tailor Featured 2013.03.11

http://rghost.ru/44433165

Исправлен баг опции Picture_Shape, который в своё время исправил автор Scan Tailor Plus.
Автор: LonerDergunov
Дата сообщения: 12.03.2013 05:00
monday2000

Цитата:
Оконтуривать автоматическую прямоугольную Picture_Shape-зону ручной прямоугольной зоной автоматически?

Да.
Автоматическую прямоугольную Picture_Shape-зону, а также автоматическую не-прямоугольную зону.
Сейчас чтобы исключить лишний фрагмент из Picture_Shape-зоны приходится рисовать ещё две зоны, и вся польза сходит на нет. Была бы зона автоматически оконтурена - достаточно было бы потянуть за уголок.


Цитата:
А если на странице несколько зон, и все слишком разные? Как быть?

Имхо оконтуривать.
Будет много проще их редактировать/удалять/изменять размеры.


Цитата:
Может, Picture_Shape вообще надо было вынести в контекстное меню зоны?

Только не вынести, а добавить. Оставить как сейчас + возможность вызова из контекстного меню.

А вообще я уже писал - контекстное меню на зонах очень недружелюбно сделано. Зачем сделано лишнее диалоговое окно, до которого каждый раз приходится добираться, если все эти же опции можно вынести в контекстное меню?
Автор: balik1982
Дата сообщения: 12.03.2013 19:04
monday2000
ОГРОМНОЕ спасибо за то что откликнулись на мою просьбу и так быстро сделали свою версию программы полностью удовлетворяющей при обработке "повседневных" сканов книг!
Автор: monday2000
Дата сообщения: 12.03.2013 20:06
balik1982
Пожалуйста.

Я залил последнюю версию на Sourceforge:

https://sourceforge.net/projects/scantailor/files/scantailor-devel/featured/

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

Поэтому я решил для определённости переименовать зоны из Enhanced из "прямоугольная" в (долго думал, как) "обведённая". Имеется в виду "обведённая прямоугольником" - но писать прямо так - "обведённая прямоугольником" - слишком длинно, а в русском языке нет подходящего простого термина. Можно было бы назвать их "ортогонированная", или "ортогонизированная" - но это слишком заумно. Я думал ещё насчёт "оквадраченная" - но это и слишком коряво, и не совсем точно - ведь "квадрат" - это не то же самое, что и "прямоугольник".

По-английски "обведённая" я написал как "surrounded".

Если бы в русском языке было слово "опрямоуголенная" - я бы лучше так назвал.

Добавлено:
По поводу последнего бага: я его исправил не так именно, как это сделал DikBSD в Plus. Хотя мне его исправление сильно помогло. Но почему-то его исправление мне ничего не дало - когда я его воспроизвёл у себя, пришлось его значительно дорабатывать.

Причина этого бага довольно интересна: я думаю, что автор Enhanced просто выбрал неоптимальное место в XML-файле задания, где хранить информацию о типе зоны. Так что мне пришлось для исправления бага находясь в одном XML-узле, лезть в другой, и оттуда считывать тип зоны - а это чёрт знает что.
Автор: monday2000
Дата сообщения: 15.03.2013 20:36
В последней версии обнаружился баг: под Windows 7 на этапе вывода обработка зависает перед выводом текущего скана в главное окно - бесконечно крутится круговая анимация, а изображение так и не выводится. Под Windows XP - всё нормально.

Хотя, не исключено, что тут какие-то иные причины, нежели чем разные операционки, но больше всего похоже на эту причину.

Сборка 2013.03.09 не имеет этого бага. Видимо, я не совсем удачно придумал способ устранения бага, устраненного DikBSD: получается, один баг я убрал, но этим породил новый баг - и гораздо хуже.

Буду разбираться, в общем.

Если кому-то интересно - то посмотрите функцию "опрямоуголивания" зон:

http://scantailor.git.sourceforge.net/git/gitweb.cgi?p=scantailor/scantailor;a=blob;f=imageproc/BinaryImage.cpp;hb=refs/heads/pictureshape

строка 565:

void
BinaryImage::rectangularizeAreas(BWColor content_color)

Это - "ядро" опции Picture_Shape. Каждый желающий может по этой функции придумать аналогичную свою - тут особых знаний по программированию ИМХО не требуется, это чистая школьная геометрия. Предлагайте свои варианты. Если кто-то что-нибудь удачное придумает - могу вставить в Featured.

У Tulon'а отдельный самодельный класс для черно-белых изображений, и он пока что выглядит не слишком-то удобным. Я пока даже не понимаю, как он работает. К примеру, во FreeImage работа с ЧБ выглядела столь же просто, как и с другими глубинами цветов. А тут какие-то непонятные навороты, затуманивающие суть.
Автор: monday2000
Дата сообщения: 18.03.2013 19:25
Разобрался я с этим rectangularizeAreas. Алгоритм оказался довольно изощрённым.

Он работает с чёрно-белой маской автозон. Суть примерно такая:

Алгоритм работает не с отдельными пикселями, а с "пятнами" - размером в 32-битное слово. Так и быстрей, и проще.

Обходит в бесконечном цикле всю маску - дойдя до конца переходит на начало и так бесконечно.

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

Одновременно пробует увеличить каждое пятно в 1,5 раза - во все стороны - и смотрит, не пересекается ли увеличенное пятно с каким-нибудь соседним. Если пересекается - то 2 этих пятна сливаются в одно, и результат кладётся в глобальный список пятен, если нет - то идёт дальше.

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

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

Ясно, что такой алгоритм правильно сохранит количество зон на скане: допустим, если было 2 авто-зоны - то он их не сольёт в одну.

Что мне в нём не очень нравится - так это то, что полученный контур всегда заметно больше, чем исходная зона. Это определяется как микронеровностями контура исходной зоны, так и самим характером алгоритма, где минимальная оперируемая единица - это не один пиксель, а 16 (приращение пятна).

Потом бывают ещё такие картинки, которые хотя и прямоугольные, но количество углов у них больше 4-х.



Такие картинки алгоритм выделяет простым прямоугольником - а в некоторых книгах их немало.
Автор: monday2000
Дата сообщения: 19.03.2013 19:10
Scan Tailor Featured 2013.03.19

http://rghost.ru/44614697

Добавлено:
Исправлен баг с зависанием программы. Оказалось, что разница в операционных системах ни при чём, а баг возникал просто из-за переноса программы на другой компьютер! Причина бага оказалась банальной: в конструкторе класса я забыл проинициализировать добавленные мною булевские переменные нулём - из-за этого они содержали мусор, который ошибочно принимался за true. А на моём компе, видно, там был не мусор - а нулевое значение, то ли сохранившееся в реестре после прежних экспериментов, то ли ещё почему-то. Поэтому у меня всё работало - а на другом компе - нет.

Также я добавил ещё один вид "формы картинок" - Test. Пока что он просто равен "Обведённая", но в дальнейшем я планирую как-то её модифицировать. "Обведённая" так и останется, а Test ещё долго, наверное, будет объектом моих экспериментов.
Автор: monday2000
Дата сообщения: 20.03.2013 20:52
Я залил последнюю исправленную версию на офсайт

https://sourceforge.net/projects/scantailor/files/scantailor-devel/featured/

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061

Предыдущая тема: CmCkA v4


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.