Автор Тема: Как закодирован файл (в DjVu)?  (Прочитано 23482 раз)

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Как закодирован файл (в DjVu)?
« : 06 ёоЭм 2011, 23:21:29 »
Попалась на глаза книга в которой интересно сделанна раскараска.
Рассмотрим страницу 330, рисунок 11.4 (Саму страницу можно взять тут).
1. В режиме просмотра (WinDjview) "чернобелый", картинка имеет вид

2. В режиме просмотра "цветной", картинка имеет вид


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

Сначала я подумал что это просто подклеян задний план, но если переключится - то он пуст. В информации о странице видно:

 что раскрашен именно передний план.
Вопрос, как такое было сделанно?

« Последнее редактирование: 06 ёоЭм 2011, 23:24:52 от sergiokapone »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Как закодирован файл (в DjVu)?
« Ответ #1 : 07 ёоЭм 2011, 09:09:54 »
sergiokapone
Цитировать
Вопрос, как такое было сделанно?
Это Arcand с Руборда явно делал. Он как-то так готовит сканы под documenttodjvu, что у него автоматически разделяются слои как надо. Но больше никто так не умеет делать. Это ИМХО искусство, почти алхимия - в отличие от технологии, предлагаемой DjVu Imager.

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #2 : 07 ёоЭм 2011, 09:29:44 »
Это Arcand с Руборда явно делал. Он как-то так готовит сканы под documenttodjvu, что у него автоматически разделяются слои как надо. Но больше никто так не умеет делать. Это ИМХО искусство, почти алхимия - в отличие от технологии, предлагаемой DjVu Imager.

Это, наверное, не только искусство, но и рутина жудкая, книга-то в двух томах и рисунки практически на каждой странице. К тому же, тут как-то хитро раскрашен именно передний слой, задний совершенно пуст. Я Djvu Imager'ом попробовал прогнать страницу разными профилями - так цвет всехда вылазит на задний план. А описана ли сама технология?

nbl

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #3 : 07 ёоЭм 2011, 10:54:04 »
В данном случае иллюстрации малоцветные и нормально закодируются в передний слой. Вот в этой теме (http://www.djvu-scan.ru/forum/index.php?topic=200.msg1457#msg1457) мне посоветовали добавить в нужный профиль documenttodjvu параметр Shape Filter Level = 0, чтобы все кодировалось в передний слой. У меня получилось.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Как закодирован файл (в DjVu)?
« Ответ #4 : 07 ёоЭм 2011, 12:47:51 »
sergiokapone
Цитировать
А описана ли сама технология?
Как я понимаю, что-то вроде этого:
http://www.djvu-soft.narod.ru/scan/corel_scan.htm

Используется Corel PHOTO-PAINT. Я так никогда и не освоил, да и толком не понял это искусство. По-моему, всё это умеет делать один лишь только Arcand. :)

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #5 : 07 ёоЭм 2011, 16:44:46 »
В данном случае иллюстрации малоцветные и нормально закодируются в передний слой. Вот в этой теме (http://www.djvu-scan.ru/forum/index.php?topic=200.msg1457#msg1457) мне посоветовали добавить в нужный профиль documenttodjvu параметр Shape Filter Level = 0, чтобы все кодировалось в передний слой. У меня получилось.

Я в файле Documenttodjvu.conf прописал как у Arcand в методе Corel Scan, но  изменил на Shape Filter Level = 0:
#@displayName:my_scan600
my_scan600: scan600
pages-per-dict=1000
pix-filter-level=0
shape-filter-level=0
resolution-multiplier=1
bg-subsample=3
threshold-level=100
aggressive=true
но у меня все равно цвет на заднем фоне.

В настройках DjVu Small тоже поставил shape-filter-level=0, и опять цвет на заднем фоне.
« Последнее редактирование: 07 ёоЭм 2011, 17:02:43 от sergiokapone »

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #6 : 07 ёоЭм 2011, 16:52:29 »
По-моему, всё это умеет делать один лишь только Arcand.
Ничего, подтянемся. Когда-то теорию относительности понимал один лишь Эйнштейн...

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Как закодирован файл (в DjVu)?
« Ответ #7 : 07 ёоЭм 2011, 17:47:22 »
sergiokapone
Цитировать
Ничего, подтянемся. Когда-то теорию относительности понимал один лишь Эйнштейн...
Да я не это имел в виду: нужно наоборот, максимально упростить методику Arcand - чтобы она из искусства превратилась в технологию.

А упростить можно лишь одним способом - реализовать в Scan Tailor (или его аналоге) нужные алгоритмы по сканобработке. То есть, с вороха малоприспособленных для книгосканирования программ (как это делает Arcand) перейти на специально заточенный "книгосканировочный" софт (который для этого потребуется специально создать).
« Последнее редактирование: 07 ёоЭм 2011, 17:50:23 от monday2000 »

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #8 : 07 ёоЭм 2011, 18:14:14 »
Я прочитал статью, и у меня начало что-то получаться.

А упростить можно лишь одним способом - реализовать в Scan Tailor (или его аналоге) нужные алгоритмы по сканобработке. То есть, с вороха малоприспособленных для книгосканирования программ (как это делает Arcand) перейти на специально заточенный "книгосканировочный" софт (который для этого потребуется специально создать).

На самом деле, как мне показалось, там нет ничего сложного.
Я сделал по этому алгоритму:
tifftopnm foreground.tif | pnmtodjvurle > foreground.rle
tifftopnm background.tif > background.ppm
copy /b foreground.rle+background.ppm output.sep
csepdjvu output.sep demo.djvu
del foreground.rle background.ppm output.sep
Можно просто написать GUI к тем консольным утилитам (По приципу Djvu Small или Imager), и тогда можно будет пакетно все делать. А комбайн -  это конечно же мечта...

Вот мои результаты по приведенному выше батнику:
1. Режим "чернобелый"

2. Цветной режим - такой же как и исходник (см. картинку в первом посте)

3. Задний фон пуст.

А квадратик получитлся, поскольку я воспользовался ST outliner, который мне обвел квадратом весь рисунок. Если же в ST акуратно обвести зону (ST в принципе и автоматом єто нормально делает) то получится результат как в первом посте.

Вывод: На первое время нужен GUI для утилит подобного кодированния. Может этот функционал добавить в Djvu Small?

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Как закодирован файл (в DjVu)?
« Ответ #9 : 07 ёоЭм 2011, 20:37:27 »
Проблема не закодировать - проблема превратить скан книги в полуфабрикат с ограниченным числом цветов, пригодный для такого кодирования.

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #10 : 07 ёоЭм 2011, 21:14:49 »
Проблема не закодировать - проблема превратить скан книги в полуфабрикат с ограниченным числом цветов, пригодный для такого кодирования.

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

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Как закодирован файл (в DjVu)?
« Ответ #11 : 08 ёоЭм 2011, 09:10:50 »
sergiokapone
Цитировать
Может этот функционал добавить в Djvu Small?
Насколько я знаю, DjVu Small уже это умеет - так что добавлять такой функционал туда не надо.
57an
Цитировать
проблема превратить скан книги в полуфабрикат с ограниченным числом цветов, пригодный для такого кодирования.
Рано или поздно, мы научимся это делать с приемлемыми трудозатратами.

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #12 : 08 ёоЭм 2011, 18:06:41 »
В статье, в методе Минора сказанно "8. Совместить субсканы в один (исходный) (как именно это сделать - непонятно)."
У меня идея такая:
1. Прогнать картинку через СТ
2. Разделить субсканы.
3. Субсканы с картинаки преобразовать в малоцвет.
4. Соединить субсканы в один (как?) tiff
5. Кодировать в Djvu.

Как я понял, то CT в режиме Mixed тоже дает на выходе слоенный tiff, но после кодирования в widjview в режиме "чернобелый"  вместо изображения - квадрт Малевича.

sergiokapone

  • Постоялец
  • ***
  • Сообщений: 103
    • Просмотр профиля
Re: Как закодирован файл (в DjVu)?
« Ответ #13 : 09 ёоЭм 2011, 11:06:11 »
Вобщем, я сделал малоцветную раскраску. Результат можете посмотреть тут.
Обработку делал вручную в Фотошопе. Кодировал при помощи NetPbm+csepdjvu. Черед DS (documenttodjvu) никак не получалось, цвет выпадал в задний фон. Если, конечно и есть возможность закодировать нормально через DS, то эта возможность ну очень сильно запрятана.

Правда, в foreground colors много цвета. Тут нужно будет тщательнее.
« Последнее редактирование: 09 ёоЭм 2011, 11:15:14 от sergiokapone »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Как закодирован файл (в DjVu)?
« Ответ #14 : 09 ёоЭм 2011, 20:49:36 »
Ну если от точек на сером фоне сможете избавиться, то получится как раз почти то что нужно. А если стрелки целиком окрасить - то получится совсем то.