Автор Тема: Программа DjVu Small Mod  (Прочитано 92960 раз)

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Re: Программа DjVu Small Mod
« Ответ #135 : 18 Апреля 2016, 10:23:18 »
Не хватает горячих клавиш для областей в редакторе.
Горячие клавиши есть (T - текстовая зона, B - фон, N - негатив и т.д.)
Остальное учту в следующей версии.
Кстати, версии теперь выкладываются тут: http://book-scan.wix.com/djvu#!rus/zso7s


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

правда она сделана на шарпе и требует 2й фреймворк.. если её привязывать к Моду, то и на него будут те же ограничения распространяться
Если Вы опубликуете исходник - можно будет его сконвертировать в C++.
Правда, наверное, имеет смысл подождать версии 1.0. Иначе придётся поддерживать две ветки кода.

N.M.E.

  • Пользователь
  • **
  • Сообщений: 87
    • Просмотр профиля
Re: Программа DjVu Small Mod
« Ответ #136 : 19 Апреля 2016, 21:13:36 »
А что происходит со словарём? Он оптимизируется заново, или просто сливаются два словаря из обоих файлов?
со словарем ничего не происходит, лезть в общий словарь чревато, ибо тогда по всей книге надо выискивать к каким страницам он привязан и менять ссылки на шейпы во всех блитах.. копируемые шейпы и блиты сохраняются в чанке Sjbz той страницы, в которую они вставляются, причем переносится не весь словарь, а только нужные примитивы.. про оптимизацию, сравнение вставляемых шейпов с уже имеющимися, я первоначально задумывался, но пришел к выводу, что сложность решения задачи не сопоставима с возможной выгодой в какие-то пару процентов по объему книги - лучше сделать проще и надежнее.. для оптимизации любой djvu-книги лучше создать отдельную утилиту, но она у меня в планах в такой далекой перспективе, что наврядли я до нее когда-нибудь дойду.. да и с текущим объемом винтов эта незначительная оптимизация имхо уже сейчас не актуальна..
Цитировать
Если Вы опубликуете исходник - можно будет его сконвертировать в C++.
Правда, наверное, имеет смысл подождать версии 1.0. Иначе придётся поддерживать две ветки кода.
где-то я встречал такую тему - литературное произведение было переведено на другой язык, а затем снова на язык оригинала - так там конечный продукт первоначальному вообще был не родня))) это я к тому, что исходники djvu на с++ открыты - djvulibre - и переводить мой наикривейший код с#, который был в бОльшей степени заимствован из djvulibre, обратно в с++ не самая лучшая идея..
если есть желание сделать либу на с++ для обработки отдельных зон или м.б. в программу встроить данный функционал - я могу помочь идеями и отдельными частями шарповского кода.. если не охота с кодом заморачиваться, я могу в свою утилиту встроить понимание консольной команды для слияния маск-слоя двух djvu-страниц.. в любом случае, кому надо, тот и сейчас может отдельно закодировать разные зоны страницы с разной степенью агрессивности и затем их слить.. но вот только по ощущениям это будет нужно такому малому количеству народа, что задача превращается скорее в спортивный интерес, чем в общественно полезное дело..
в общем, если есть какие-то конкретные вопросы и предложения, лучше писАть в личку на руборде, ник NME, я там чаще бываю, быстрее отвечу..

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Re: Программа DjVu Small Mod
« Ответ #137 : 05 Мая 2016, 18:49:42 »
Версия 0.7.6
book-scan.wix.com/djvu#!blank/z8lfg

Прямые ссылки
https://mega.nz/#!ywwhgDwY!FTpKoGnxDK9saWddXaTtPvG9tzHwI9JsnX1yv6YTfSs
http://www.mediafire.com/download/3jsw24rok6d5wb1/DjVu_Small_Mod_v0.7.6.7z


Добавлены фичи:
- Перемещение между файлами в редакторе зон
- Кнопка "Сделать фон зоной по умолчанию" в редакторе зон
- Возможность выбрать действие по двойному клику на иконке зоны
- Удаление цветовых каналов (грубый метод борьбы с горячими пикселами)

Хаки консольных утилит:
- Исправлена некорректное определение DPI
- Исправлено несколько багов в опциях, изменяющих размер изображения (subsample, upsample-mask,...)

Исправлены ошибки:
- Наличие зон приводило к отключению одного из внутренних фильтров
- Зоны не работали, если имя файла содержало некоторые специальные символы
- Персональный профиль неверно сохранялся, если наследовался от другого персонального профиля
- Кодирование падало, если пользователь отменял выключение компьютера
- Исправлена опция "Залить фон серым"

DigURa

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Программа DjVu Small Mod
« Ответ #138 : 07 Мая 2016, 11:58:58 »
Спасибо. Гораздо удобнее стало работать. А какая горячая клавиша для перехода на следующую стр? PgDn не работает. Да. Ещё по-умолчанию я имел в виду, чтобы при переходе на следующий файл букву "B" не надо было нажимать для выделения полутоновой зоны, а она сама бы уже при выделении активировалась. (В Скан кромсаторе такое в MouseUp режиме есть) Ждём возможности бинаризации текстовой зоны. Пусть и отдельной консольной программой. По меткам, отмеченным в редакторе зон. Если возможно.
Ещё в переводе баг небольшой нашёлся.


Ещё странный баг



Ошибка только на профиле чёрно-белый.

Сжимал  вот это http://def.kondopoga.ru/uploads/posts/2016-05/1462520536_32-list.jpg

Есть ещё баг с переассоциацией файлов zon на новое место нахождения Zonedit.exe. Но это правится через реестр.
« Последнее редактирование: 07 Мая 2016, 14:59:01 от DigURa »

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Re: Программа DjVu Small Mod
« Ответ #139 : 07 Мая 2016, 21:16:47 »
Прошу прощения, в версию 0.7.6 попал один из модулей альфы 0.7.7, из-за чего не работало чёрно-белое кодирование.
Битый архив исправлен и перезалит. (Опечатка в русском переводе также исправлена)

book-scan.wix.com/djvu#!blank/z8lfg

https://mega.nz/#!zhRjkT7T!ag7tCtOpt7I2kE7Sh4NXWtXVKrVj_SjpgG3RkAm6Fto
http://www.mediafire.com/download/xt0drj1qaj0wgfd/DjVu_Small_Mod_v0.7.6.1.7z

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Re: Программа DjVu Small Mod
« Ответ #140 : 07 Мая 2016, 21:46:54 »
А какая горячая клавиша для перехода на следующую стр? PgDn не работает.
Alt + стрелки.

Ждём возможности бинаризации текстовой зоны. Пусть и отдельной консольной программой. По меткам, отмеченным в редакторе зон. Если возможно.
Постараюсь выпустить отдельную программу в ближайшее время.
С полноценной реализацией есть сложности (пока не придумал, как избежать резкого усложнения интерфейса).

Есть ещё баг с переассоциацией файлов zon на новое место нахождения Zonedit.exe.
Уточните, пожалуйста, как его воспроизвести. И на какой ОС.

DigURa

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Программа DjVu Small Mod
« Ответ #141 : 09 Мая 2016, 11:26:29 »
избежать резкого усложнения интерфейса).
Можно бы просто сделать кнопку передачи пути открытого в zoneedit файла в бинаризующую консольку. Или всех файлов. А учитывая, что открытый файл может быть закрыт для переписывания и редактирования, то можно на это время бинаризации перейти на другой файл. Зато круто бы смотрелись результаты бинаризации. Самую лучшую бинаризацию я видел в irfanView. В его лицензионном платном плагине JPM. Справляется даже с такими слабочитаемыми файлами, как я привёл выше.
Уточните, пожалуйста, как его воспроизвести. И на какой ОС.
В хp sp3. По разным путям стоят два разных DjVu Small Mod. Когда в zoneedit нажимаю Вид/Настройки/Изменить ассоциацию файлов, то файлы *.zon продолжают открываться в zoneedit, расположенном по старому пути. То есть ассоциации не меняются.
« Последнее редактирование: 10 Мая 2016, 14:37:32 от DigURa »

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Re: Программа DjVu Small Mod
« Ответ #142 : 10 Мая 2016, 18:20:11 »
Нестабильная альфа-версия 0.7.7 alpha 1.

https://mega.nz/#!78YilSyA!Eowoeyuw8QUV3NHxak4lSiTQ3fOHuDjUjTOrHz5oKL8
http://www.mediafire.com/download/w373jhrn915q3h0/DjVu_Small_Mod_v0.7.7.alpha1.7z

- Новый тип зон: "Защита от удаления точек".
- Опция редактора зон: "Залипающие кнопки"
    (Пробел сбрасывает все кнопки)
- Редактор зон не изменяет состояние CapsLock
- Экспериментальная опция "зональная бинаризация"
    (активируется через скрытую панель)
    (в этом режиме, красная зона защищает от опций "залить фон цветом" и "сделать текст цветом")
    (для активации скрытой панели, откройте файл "global.ini" и поставьте "ShowHiddenPanel=t")
- Исправлены несколько мелких багов.

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Re: Программа DjVu Small Mod
« Ответ #143 : 10 Мая 2016, 18:42:33 »
textsharik , можете сделать в zone editor  тип зоны "чернобелая", которая кодируется с другим режимом чем остальная страница? Это нужно, например, если агрессивный метод сжатия съедает точки на рисунке. Рисунок можно было бы закодировать в режиме lossless а все остальное aggressive.
Добавил экспериментальную зону "Защита от удаления точек". В редакторе эта зона голубая (та же, что "Негатив", только для чёрно-белых изображений).


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


Можно бы просто сделать кнопку передачи пути открытого в zoneedit файла в бинаризующую консольку.
Пока не довёл фичу до ума - спрятал её на скрытую панель.
Включается следующим образом:
1) Найдите конфигурационный файл "global.ini" (либо в каталоге программы, либо в C:\Documents and Settings\username\Application Data\DjvuSmallMod\)
2) В файле "global.ini" найдите ключ "ShowHiddenPanel" и измените его значение на "t".
3) Запустите программу, откройте опции кодирования, перейдите во вкладку "Hidden". Включите опцию "Zonal binarization".
4) В настройках фона включите "Залить фон белым", в настройках текста - "Сделать текст чёрным".
(Если оригинальный текст цветной - опцию "Сделать текст чёрным" можно убрать.)

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


Самую лучшую бинаризацию я видел в irfanView. В его лицензионном платном плагине JPM. Справляется даже с такими слабочитаемыми файлами, как я привёл выше.
Я попробовал поиграться с этим плагином, но что-то ничего особого хорошего не увидел.
Вы не могли бы дать конкретный пример такого JPM-файла, с указанием настроек кодирования?

DigURa

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Программа DjVu Small Mod
« Ответ #144 : 12 Мая 2016, 13:49:55 »
Отличный продукт получился!

Я вроде сначала апсамплинг делал. Прежде чем в jpm бинаризацию произвести. И не в чёрно-белый jpm cразу. А сначала для выделения контуров - в "standart".

Попробовал режим бинаризации. Часто даёт чёрные артефакты а местах вне текста и иллюстраций.
« Последнее редактирование: 17 Мая 2016, 21:44:33 от DigURa »

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Программа DjVu Small Mod
« Ответ #145 : 21 Мая 2016, 18:31:51 »
Как отключить при консольном использовании documenttodjvu.exe из DjvuSmallMod сообщения Reported DPI = 600*600, режим --verbose отключен. Спасибо.

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Re: Программа DjVu Small Mod
« Ответ #146 : 24 Мая 2016, 13:20:09 »
Попробовал режим бинаризации. Часто даёт чёрные артефакты а местах вне текста и иллюстраций.
У этой проблемы есть два решения:
1) Либо ставить зоны "грязи" вручную.
(Я буду постепенно развивать автоматический расстановщик зон, но пока он плох)
2) Либо снизить агрессивность сегментера.
(Если "Фильтр формы"=-∞ - снизить агрессивность до, скажем, -100, или даже +10)
Можно также включить опцию "Чистить белые поля", если таковые есть.

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

Я вроде сначала апсамплинг делал. Прежде чем в jpm бинаризацию произвести. И не в чёрно-белый jpm cразу. А сначала для выделения контуров - в "standart".
Попробовал. Всё равно не получается ничего хорошего.

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Re: Программа DjVu Small Mod
« Ответ #147 : 24 Мая 2016, 13:28:01 »
Как отключить при консольном использовании documenttodjvu.exe из DjvuSmallMod сообщения Reported DPI = 600*600, режим --verbose отключен. Спасибо.
Как быстрое решение - открыть postseg.dll в редакторе бинарных файлов и забить эту строчку нулями.
Пропатченный postseg.dll можете скачать здесь: http://www.mediafire.com/download/m54te9ws32kq299/msg-patch.7z
Полноценное решение (с обработкой параметра verbose) выпущу позже.

P.S. Если не секрет, какой смысл в консольном использовании documenttodjvu.exe?

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Программа DjVu Small Mod
« Ответ #148 : 24 Мая 2016, 17:36:15 »
Спасибо.

P.S. Если не секрет, какой смысл в консольном использовании documenttodjvu.exe?

Для быстрого кодирования битональных tiff в djvu по нажатию кнопки выделенных в Total Commander'е файлов.
Вот кнопка

TOTALCMD#BAR#DATA
"%BookShop%\DjVuSmallMod\bin\documenttodjvu.exe"
--profile=bitonal600 --pages-per-dict=9999 --aggressive --filelist=%L %O.djvu
%BookShop%\Djvuicons.ICL,12
Fast Encoding
.
1
-1
« Последнее редактирование: 24 Мая 2016, 17:38:01 от sergiokapone »

DigURa

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Программа DjVu Small Mod
« Ответ #149 : 25 Мая 2016, 03:07:00 »
1) Либо ставить зоны "грязи" вручную.
(Я буду постепенно развивать автоматический расстановщик зон, но пока он плох)
2) Либо снизить агрессивность сегментера.
(Если "Фильтр формы"=-∞ - снизить агрессивность до, скажем, -100, или даже +10)
Можно также включить опцию "Чистить белые поля", если таковые есть.

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

Понял. Это очень важное разъяснение. Пожалуй не лишним было бы его добавить в справку. Всё таки потихоньку программу уже используют тысячи оцифровщиков. А уж по всему миру то и того больше.
« Последнее редактирование: 25 Мая 2016, 03:09:45 от DigURa »