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

» Scan Tailor

Автор: U235
Дата сообщения: 05.02.2009 06:51
Tulon

Цитата:
3. Среди остальных классов, удаляем те объекты, у которых поблизости нет объекта более высокого класса.
Так вот в последнем пункте надо добавить "или такого-же класса". Как ни странно, но такое маленькое изменение существенно усложняет реализацию.

Это можно попробовать сделать так:
Выбираем слой с объектами одного класса. Ужирняем на нем элементы (dilate) на половину заданного растояния R (близкие друг к другу объекты слипнутся в кластеры, далекие -нет). Удаляем элементы, размером меньшие размера класса+R . Делаем логическое И (маскируем) получившегося и исходного изображения данного класса.
Автор: monday2000
Дата сообщения: 05.02.2009 08:37
denver 22

Цитата:
Даже Понедельник в упор не увидел в топике ссылку на неё.

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

P.S. Любопытно, что модераторы топика на это никак не отреагировали. А вот на Натахаус-форуме на ту же самую проблему отреагировали - и нужным образом.
Автор: usrnd
Дата сообщения: 05.02.2009 16:30
Обнаружил глюки в программе (серьёзные)

Сканировал книгу.
Под windows xp sp3 + updates
400 dpi Gray 8 bit tiff + lzw
(epson perfection v10 + vuescan 4.4.63 pro, vuescan 4.5.01 pro)
потоково (за 1 час - 130 разворотов)

Скачал-установил
scantailor20090129
scantailor-0.9.1 Rev.258 denver-22

Но на одном скане заметил глюк:
После разрезания, поворота, на стадии "полезная область" правую часть скана в окне prewiev нет части скана,но кадрируется верно.

Дома баг не воспроизводится (возможно из-за того что урезал скан), завтра проверю.

Добавлено:
Еще более серьёзная проблема.
В процессе выяснения причины вышеописанного бага уменьшал вес скана.

В результате
scantailor20090129
scantailor-0.9.1 Rev.258 denver-22

вылетают!!!

Баг воспроизводится!!!

Добавлено:
http://rapidshare.com/files/194254062/2.rar.html
http://rs304.rapidshare.com/files/194254062/2.rar

http://rapidshare.com/files/194256240/diff2.rar.html
http://rs378.rapidshare.com/files/194256240/diff2.rar

Вопрос:
"полезная область" не называется кадрированием по какой-то особой причине или "так сложилось" ?


Добавлено:
Очень многое в программе понравилось.
Иногда хотелось визуального отображения причины выделения скана.
Это возможно увидеть в следующих версиях ?

Предвидится ли в дальнейшем развитии программы исправление геометрических искажений ?
Автор: denver 22
Дата сообщения: 05.02.2009 18:34
Потребовалось вручную наклонить резак для разделеия страниц - замучился выставлять. Сверху настрою - снизу сбивается и наоборот. Стал подозревать, что он вращается по центру. Это неудобно. При тонкой настройке выставить его правильно по всей высоте разворота почти нереально. Возможно ли настроить его регулировку так, чтобы при перемещении верхнего "круга" центром вращения становился нижний, и наоборот?

http://narod.ru/disk/5485942000/Scan-Test-258_2.7z.html
Вот хороший пример того, как очисткой удаляется часть грунта на рисунках, часто встречающихся в строительной литературе. Тут есть и маленькие точки, и большие. Вот уж задача для составления алгоритма! Тот же SK с ними тоже не справляется. Я их сразу включаю в "Exclude region" для исключения из обработки.

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

+1. Тот же вопрос возник утром. Я понимаю, что если и будет, то после какого-нибудь 1.0 релиза
Автор: Tulon
Дата сообщения: 05.02.2009 19:07
U235

Цитата:
Это можно попробовать сделать так:
Выбираем слой с объектами одного класса. Ужирняем на нем элементы (dilate) на половину заданного растояния R (близкие друг к другу объекты слипнутся в кластеры, далекие -нет). Удаляем элементы, размером меньшие размера класса+R . Делаем логическое И (маскируем) получившегося и исходного изображения данного класса.

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

В общем на тот момент когда я прочел ваш пост, я уже реализовал это на базе Voronoi Diagram, благо соответствующий класс у меня уже был. Работает достаточно бысто, правда памяти много жрет - аж 12 байт на пиксель.

Добавлено:
usrnd

Цитата:
Но на одном скане заметил глюк:
После разрезания, поворота, на стадии "полезная область" правую часть скана в окне prewiev нет части скана,но кадрируется верно.

Скорее всего проблема была на стадии разрезки.


Цитата:
Еще более серьёзная проблема.
В процессе выяснения причины вышеописанного бага уменьшал вес скана.

Что значит вес? Размер в байтах? И что тут такого?


Цитата:
вылетают!!!
Баг воспроизводится!!!

В SVN пофиксил два вылета:
1. С полями, близкими к нулю.
2. Цветные сканы в режиме Смешанный. Этот баг я несколько дней назад внес, и только сейчас заметил.


Цитата:
"полезная область" не называется кадрированием по какой-то особой причине или "так сложилось" ?

Мне например непонятен термин кадрирование. Я конечно не профессионал, но и среди пользователей таких будет много.


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

Нут я не понимаю. Причина выделения чего именно и где именно?


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

Я почитал несколько исследований на эту тему. В принципе сделать реально, но приоритет у этой задачи низкий - мало кому это надо, а реализовать будет непросто.




Добавлено:
denver 22

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

Да нет, все работает как раз так, как вы хотите. Чтобы убедить меня в обратном, придется вам видимо screencast (видео рабочего стола) сделать.


Добавлено:
denver 22

Цитата:
http://narod.ru/disk/5485942000/Scan-Test-258_2.7z.html
Вот хороший пример того, как очисткой удаляется часть грунта на рисунках, часто встречающихся в строительной литературе. Тут есть и маленькие точки, и большие. Вот уж задача для составления алгоритма! Тот же SK с ними тоже не справляется. Я их сразу включаю в "Exclude region" для исключения из обработки.

На этих сканах у вас неправильный DPI. Это сказывается на Despeckle.
В SVN уже новый метод Deskpeckle, но ещ епредстоит его настраивать.
Автор: usrnd
Дата сообщения: 05.02.2009 20:45

Цитата:
В SVN пофиксил два вылета:
1. С полями, близкими к нулю.
2. Цветные сканы в режиме Смешанный. Этот баг я несколько дней назад внес, и только сейчас заметил.


Поля далеки от 0, скан - grey 8bit.
Завтра кину домой и кину ссылку на форум.
Или не надо ?
Хочется как-то помочь, чтобы в результате программа не глючила.

Т.о. исходники можно скачать и самому компилировать ?
Не ругайтесь пожайлуста, но как под виндой скомпилировать ?
gcc, mingw, исходники, что еще ?
Заодно и "полезная область" на "кадрирование" поменять можно было бы ;)



Цитата:

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

Нут я не понимаю. Причина выделения чего именно и где именно?
Автор: denver 22
Дата сообщения: 05.02.2009 21:06

Цитата:
На этих сканах у вас неправильный DPI

2-й раз мне такое говорят. А как вообще это проверяется? И какие признаки (чтобы заподозрить неладное)?
Если вы о результирующем файле, где текст не на всю страницу, так это проект незаконченный и на размеры повлияли неправильно ориентированные сканы. А может и вы правы 8-)
Ну уж на моих примерах выше наверное не DPI сказался на качестве очистки. Этот эффект сплошь наблюдается и в SK Но там хоть гибко настроить исключение можно. Извините, но получается, что почти в каждом своем посте я намекаю на эту функцию. Кто знает, может вы реализуете что-то более эффективное.

Добавлено:
U235
Вы пожалуйста тоже делайте сборки (если не трудно). Я не уверен, что теперь делаю все правильно. А именно...
Я только-только освоился как правильно обновлять "до ревизии" (раньше каждый раз качал с нуля).
Теперь в CMake сразу нажимаю Configure, потом OK. Правильно? По идее все компилится. Только вот сейчас делаю новую сборку, и на п.9 после 9% сразу 22% стало. Вот и засомневался... уже и 30% - 35%. Так может быть?

Добавлено:

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

+1. Может и не особо красиво, но альтернативы тоже не вижу. Этап делает именно это.

Добавлено:

Цитата:
новый метод Deskpeckle

Вы на нас все методы будете испытывать? Или я неправильно понял?
Новая сборка (Rev.262) в шапке.
Автор: Tulon
Дата сообщения: 05.02.2009 22:39
usrnd


Цитата:
Поля далеки от 0, скан - grey 8bit.
Завтра кину домой и кину ссылку на форум.
Или не надо ?
Хочется как-то помочь, чтобы в результате программа не глючила.

Надо конечно.
Посмотрел те два скана, что вы выложили. На втором скане программа просто зависает - исправил в SVN. Но сразу закралось сомнение - а правильно ли эти сканы загружаются? Уж больно странный у них вид.


Цитата:
Не ругайтесь пожайлуста, но как под виндой скомпилировать ?

В исходниках есть инструкция по сборке - в packaging/windows/readme.ru.txt
Лучше брать исходники из SVN - там самая свежая версия. В этой теме я уже пару раз давал инструкции по использованию SVN.


Цитата:
Иногда "полезная область" выделяется так что внутри "полезной области" очень много пустого (с моей точки зрения) места, а программа решает что там что-то полезное. Хочется видеть что она считает полезным, из-за чего выделилась область с большой энтропией (с моей точки зрения).

Если сильно интересно - включите режим отладки, после чего переключитесь в ручной режим и обратно в автоматический - это чтобы картинка вновь обработалась. Появятся промежуточные результаты работы алгоритмов.
Автор: usrnd
Дата сообщения: 05.02.2009 22:42
rev 262
при попытке создать проект содержащий

http://rapidshare.com/files/194256240/diff2.rar.html

ПРОГРАММА ЗАКРЫВАЕТСЯ
bug.
Автор: Tulon
Дата сообщения: 05.02.2009 22:59
denver 22

Цитата:
2-й раз мне такое говорят. А как вообще это проверяется? И какие признаки (чтобы заподозрить неладное)?

Визуальный признак в СТ - непропорционально большие или малые поля по умолчанию на стадии "Макет страницы".
Поля по умолчанию - 1 сантиметр по бокам и пол сантиметра сверху и снизу. А на вашем скане этот сантиметр визуально очень большой - в него влезло бы слово из 7 букв. В реальности такого не бывает. Вот отсюда и вывод, что реальный DPI - маленький (мало пикселей на букву), а указан - больной. Вообще на стадии "Макет страницы" корошо бы отображать линейку с сантиметрами, чтобы наводить людей на мысль о неправильных DPI. Но пока это бесполезно - легкого способа поправить DPI все равно нет.


Цитата:
Ну уж на моих примерах выше наверное не DPI сказался на качестве очистки.

Deskpeckling - самая чувствительная операция по отношению к DPI. Так что неправильный DPI всегда сказывается на качестве deskpecling.


Цитата:
Теперь в CMake сразу нажимаю Configure, потом OK. Правильно? По идее все компилится. Только вот сейчас делаю новую сборку, и на п.9 после 9% сразу 22% стало. Вот и засомневался... уже и 30% - 35%. Так может быть?

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


Цитата:
Вы на нас все методы будете испытывать? Или я неправильно понял?

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

Добавлено:

Цитата:
rev 262
при попытке создать проект содержащий

http://rapidshare.com/files/194256240/diff2.rar.html

ПРОГРАММА ЗАКРЫВАЕТСЯ
bug.

А у меня зависала. Баг исправлен в Rev 263, а последняя на данный момент - 264.
Автор: denver 22
Дата сообщения: 05.02.2009 23:21

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

Да, сборки теперь собираются ещё быстрее.
Новая сборка (Rev.264) в шапке.
Автор: Tulon
Дата сообщения: 05.02.2009 23:31

Цитата:
Да, сборки теперь собираются ещё быстрее.
Новая сборка (Rev.264) в шапке.

А на многоядерных машинах можно давать mingw32-make опцию -j2 (или сколько там у вас ядер) - будет еще быстрее собираться.
Автор: usrnd
Дата сообщения: 05.02.2009 23:41

Цитата:
А у меня зависала. Баг исправлен в Rev 263, а последняя на данный момент - 264.

А что было, если не секрет ?

Добавлено:
Теперь другая беда.
вылетает на куче разных сканов, если указать в опциях вывода

+цветной-серый
+белые поля
Автор: Tulon
Дата сообщения: 05.02.2009 23:53
Возвращаясь к своей идее сделать предел расстояния до соседних объектов зависимым от точного размера рассматриваемого объекта, а не только от его класса. Сделать это элементарно, только не знаю, какую функцию выбрать.
Первое, что пришло в голову:
предельное_расстояние = корень(количество_пикселей)
Результат - недостаточная чистка.
У кого какие идеи на этот счет?

Добавлено:
usrnd

Цитата:
А что было, если не секрет ?

TIFF в оттенках серого, c количеством битов на пиксель, отличным от 8. Такие мне раньше не попадались. Код для такого случая был, но никогда не тестировался - не на чем было. Отсюда и баг.


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

+цветной-серый
+белые поля

Опа - точно. Это я исправив один баг, внес другой. Сейчас поправлю.
Автор: usrnd
Дата сообщения: 05.02.2009 23:59
Созданю проект

в имени директории имеются пробелы > путь заключается в кавычки
("C:\SCAN\scantailor-0.9.1 Rev.264 denver-install.exe\x\TEST")
сабж не понимает такое.

И очень хочется (там же) автопроверки изменения содержимого "input directory"
(чтоб не надо было нажимать browse-ok)

Будте так любезны, поправьте !
Понимаю-не первоочередное, но очень хочется.

Добавлено:
исходник
tiff +lzw
(24 BitsPerPixel)

Потребность 24Bits обусловлена наличаем в страницах кроме b-w (1bit) литер,
линий важных цветов


Добавлено:
извиняюсь, бага воспроизводится и с 8bit-color

http://rapidshare.com/files/194433745/256-.rar.html

Добавлено:

Цитата:
Опа - точно. Это я исправив один баг, внес другой. Сейчас поправлю.

не, оно и до этого было
Автор: Tulon
Дата сообщения: 06.02.2009 00:39
usrnd

Цитата:
Созданю проект

в имени директории имеются пробелы > путь заключается в кавычки
("C:\SCAN\scantailor-0.9.1 Rev.264 denver-install.exe\x\TEST")
сабж не понимает такое.

А у меня кавычки не появились. И странный какой-то путь - как бы внуть exe файла.
У кого-нибудь еще это воспроизводится?


Цитата:
И очень хочется (там же) автопроверки изменения содержимого "input directory"
(чтоб не надо было нажимать browse-ok)

Не уверен, что в Qt есть такой функционал, но даже если есть - это низкоприоритетная задача.


Цитата:
извиняюсь, бага воспроизводится и с 8bit-color

http://rapidshare.com/files/194433745/256-.rar.html

С последней версией нормально грузится.


Цитата:
Цитата:
Опа - точно. Это я исправив один баг, внес другой. Сейчас поправлю.

не, оно и до этого было

Ага, когда нашел баг - понял, что он не новый, а не до конца исправленный старый (впрочем тоже довольно свежий). Уже пофиксил. Также обновил инструкции по сборке, но там изменения сводятся к тому, что теперь надо ставить еще и NSIS - и будет собираться сразу инсталлятор. В остальном процесс сборки не изменился.
Автор: usrnd
Дата сообщения: 06.02.2009 00:50

Цитата:
А у меня кавычки не появились. И странный какой-то путь - как бы внуть exe файла.
У кого-нибудь еще это воспроизводится?

из фара путь копирую.
у меня уже вошло в привычку, :
например mkdir "c:\try to scan"

наверное неправильно сформулировал
если при создании проекта указать директорию, заключенную в кавычки, то ерунда получается: открывается диалоговое окошко "обзор папок" и в нём выбирается %USERPROFILE% а вовсе не "c:\try to scan"


Цитата:
С последней версией нормально грузится.

где - как брать новую версию, инструкцию по сборке?

Автор: Tulon
Дата сообщения: 06.02.2009 01:04

Цитата:
наверное неправильно сформулировал
если при создании проекта указать директорию, заключенную в кавычки, то ерунда получается: открывается диалоговое окошко "обзор папок" и в нём выбирается %USERPROFILE% а вовсе не "c:\try to scan"

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


Цитата:
где - как брать новую версию, инструкцию по сборке?

Поищите в этом топике упомянания SVN, TortoiseSVN, trunk. В общем вам нужен SVN клиент и SVN URL. И то и другое давалось в этом топике. Ну скачав исходники из SVN, находите инструкцию в файле packaging/windows/readme.ru.txt - и следуете ей.

Добавлено:
Отвечаю на свой же пост.

Цитата:
предельное_расстояние = корень(количество_пикселей)
Результат - недостаточная чистка.

Недостаточная чистка - из-за бага. Пофиксил баг, и получил весьма неплохие результаты с формулой:
предельное_расстояние = 2*корень(количество_пикселей)
Этот код уже в SVN (Rev 267)

Прелесть этого метода в том, что он не зависит от DPI. Впрочем разделять на классы все равно приходится, и разделение таки зависит от DPI. А разделять приходится потому, что скажем если между двумя крупными объектами есть один или несколько мелких, которые не должны по идее мешать удалению более крупных, то из-за них на диаграмме Вороного эти два крупных объекта не будут соединены - а они как раз должны мешать удалению друг друга.
Автор: denver 22
Дата сообщения: 06.02.2009 05:26

Цитата:
Прелесть этого метода в том, что он не зависит от DPI. Впрочем разделять на классы все равно приходится, и разделение таки зависит от DPI.

Что означает сея фраза? Что при 300 и 600 dpi будет разное качество очистки?
Новая сборка (Rev.267) в шапке.
Автор: Arcand
Дата сообщения: 06.02.2009 05:42
denver 22
Цитата:
2-й раз мне такое говорят. А как вообще это проверяется? И какие признаки (чтобы заподозрить неладное)?
Дпи прописывается (не во всех форматах), чтобы перевести пиксельный размер изображения в линейный. В Ирфане несложно изменить дпи (в пакетном режиме тоже). Некоторые проги всегда прописывают при сохранении свое дпи, например, стандартный виндовый Paint 120.
Сканы 300 дпи стандартного формата (А5) имеют пиксельный размер около 1500х2400. Если размеры скана (по виду стандартного формата) заметно отличаются от этих значений, значит у них другое дпи. Чтобы прикинуть реальное дпи я смотрю сколько пикселей приходится на 7 строк - это и есть дпи. Это правило опытное. При печати в один интервал на дюйм приходится строго 6 строк. В книгах плотность выше - на дюйм приходится около 7 строк.
Автор: monday2000
Дата сообщения: 06.02.2009 08:29
Tulon
Я почитал документацию - http://scantailor.wiki.sourceforge.net/
Оформлена весьма прилично - даже со скриншотами. Радует то, что теперь в отношении хелпа Вы превзошли bolega по всем статьям. Очень хорошо.
Теперь по существу: как-то неожиданно воспринимается следующая фраза:

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

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

Далее:

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

PS Всё же меня лично радует такой неплохой прогресс в отношении Вашей программы. Надеюсь, в дальнейшем Вам удастся преодолеть все возникающие трудности и довести программу до ума.
Автор: Tulon
Дата сообщения: 06.02.2009 11:44
denver 22

Цитата:
Цитата:
Прелесть этого метода в том, что он не зависит от DPI. Впрочем разделять на классы все равно приходится, и разделение таки зависит от DPI.

Что означает сея фраза? Что при 300 и 600 dpi будет разное качество очистки?

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

Arcand

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

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

monday2000

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

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


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

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

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

Во-первых с последними билдами вылетов больше на моих сканах не наблюдалось. Ура!
Субъективно все стадии обработки вплоть до вывода производятся заметно быстрее.
Последняя, преобразование в 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 строки снизу
Автор: Tulon
Дата сообщения: 06.02.2009 15:17
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, при том что проекты у меня находятся на другом диске.

Это интересно. У кого-нибудь еще такое наблюдается?
Автор: Tulon
Дата сообщения: 06.02.2009 19:35
Создание папки C:\cache исправил - она создавалась при закрытии проекта.

Deskpeckle сделаю опцию отключить. Можно было бы сделать ползунок уровня deskpeckle, но в таком случае потом будет проблематично изменить алгорим - может измениться смысл этого ползунка. А в будущем можно даже специально защитить круглые объекты (точки) от удаления.

Уменьшить потребление памяти при deskpeckle в принципе можно (обрабатывать изображение частями), но это не так то просто сделать. Отложу это на потом.
Автор: denver 22
Дата сообщения: 06.02.2009 20:59

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

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

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

monday2000 Ответ в твоем персональном топике.
Автор: denver 22
Дата сообщения: 07.02.2009 11:02
Ребята, давайте возьмем пример Tulon - побольше медитации. Просто не обращайте внимание на этого человека. По себе скажу, мне намного легче стало. Пусть живет в своём мирке. Он ведь все равно не успокоится, а тема засоряется припираниями. Забейте на него 100%-ный ИГНОР и все станет намного проще.
Лучше мы поможет Tulon-у в тестировании и развитии программы. Вместе с этим поможем и себе, получив прекрасную программу сканобработки.
Автор: Tulon
Дата сообщения: 07.02.2009 11:09
В полный игнор не обязательно - когда разговор идет по существу, я и отвечаю по существу, а когда начинается обсуждение личностей, тогда и игнор.
Автор: U235
Дата сообщения: 07.02.2009 11:33
Tulon

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

В общем на тот момент когда я прочел ваш пост, я уже реализовал это на базе Voronoi Diagram, благо соответствующий класс у меня уже был. Работает достаточно бысто, правда памяти много жрет - аж 12 байт на пиксель.

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

denver 22

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

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

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: Невозможно установить Acronis True Image Home v10.0.4940


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