[Решено] djvubind на python3: включение русского модуля OCR ?

Ответить
Аватара пользователя
Delles
Сообщения: 1785
Зарегистрирован: 18 авг 2015, 19:52
Operating system: GNU/Linux : ROSA Desktop Fresh R7 (x86_64). Не обновлял.

[Решено] djvubind на python3: включение русского модуля OCR ?

Сообщение Delles » 05 июн 2016, 19:21

В новособранной программе djvubind (представляющей собой скрипт питона3, который делает djvu из картинок, с хорошим сжатием без видимых потерь качества картинки; предусмотрено также OCR), по умолчанию производится распознавание латиницы, а как включается русский модуль tesseract, отвечающей за распознавание, непонятно. Например, фраза «на стыке транзитных путей» распознается следующим образом: «Ha CTbIRe TpaH3nTHBIx nyTefi». М.б. знатоки питона3 подскажут, как включается русский модуль?
Последний раз редактировалось Delles 05 июн 2016, 22:53, всего редактировалось 1 раз.
Talk is cheap. Show me the code.
Linus Torvalds

Аватара пользователя
awl
Сообщения: 413
Зарегистрирован: 12 сен 2011, 19:23

Re: djvubind на python3: включение русского модуля OCR ?

Сообщение awl » 05 июн 2016, 21:08

В файле ~/.config/djvubind/config необходимо дополнить строку №19 необходимой опцией:

Код: Выделить всё

[…]
tesseract_options = -l rus
[…]
У меня тестовые tif-файлы с русским текстом хорошо распознались, сгенерировались вспомогательные файлы с распознанным текстом (*.txt), но djvu-файл не захотел создаваться. Программа завершилась с ошибкой:

Код: Выделить всё

$ djvubind
* Collecting files to be processed.
  Binding a total of 3 file(s).
* Analyzing image information.
  Spawning 4 processing threads.
* Performing optical character recognition.
  Spawning 4 processing threads.
* Encoding all information to /mnt/DU/tmp/temp/book.djvu.
Traceback (most recent call last):
  File "/usr/bin/djvubind", line 446, in <module>
    proj.bind()
  File "/usr/bin/djvubind", line 171, in bind
    self.enc.enc_book(self.book, self.out)
  File "/usr/lib/python3.4/site-packages/djvubind/encode.py", line 281, in enc_book
    self._csepdjvu(page.path, tempfile, page.dpi)
  File "/usr/lib/python3.4/site-packages/djvubind/encode.py", line 137, in _csepdjvu
    self._cjb2('temp_textual.tif', 'enc_bitonal_out.djvu', dpi)
  File "/usr/lib/python3.4/site-packages/djvubind/encode.py", line 84, in _cjb2
    utils.execute(cmd)
  File "/usr/lib/python3.4/site-packages/djvubind/utils.py", line 193, in execute
    print(utils.color("err: [utils.execute()] Command exited with bad status.", 'red'), file=sys.stderr)
NameError: name 'utils' is not defined
OMNE NIMIUM NOCET

Аватара пользователя
awl
Сообщения: 413
Зарегистрирован: 12 сен 2011, 19:23

Re: djvubind на python3: включение русского модуля OCR ?

Сообщение awl » 05 июн 2016, 21:35

Обнаружил свою ошибку.
Тестовые tiff-файлы оказались 8-битные в градациях серого. После преобразования их в чёрно-белые программа djvubind отработала без ошибок и исправно создала djvu-файл с текстовым слоем.

Код: Выделить всё

$ djvubind
* Collecting files to be processed.
  Binding a total of 3 file(s).
* Analyzing image information.
  Spawning 4 processing threads.
msg: page_0003.tif: Bitonal image but with a depth greater than 1.  Modifying image depth.
msg: page_0002.tif: Bitonal image but with a depth greater than 1.  Modifying image depth.
msg: page_0001.tif: Bitonal image but with a depth greater than 1.  Modifying image depth.
* Performing optical character recognition.
  Spawning 4 processing threads.
* Encoding all information to /mnt/DU/tmp/temp/book.djvu.
Последний раз редактировалось awl 05 июн 2016, 21:39, всего редактировалось 1 раз.
OMNE NIMIUM NOCET

notauser
Сообщения: 1207
Зарегистрирован: 06 май 2012, 21:00

Re: djvubind на python3: включение русского модуля OCR ?

Сообщение notauser » 05 июн 2016, 21:36

Можно еще как-то так попробовать, ну что бы config не трогать

Код: Выделить всё

djvubind --tesseract-options="-l rus" 
http://manpages.org/djvubind

Аватара пользователя
awl
Сообщения: 413
Зарегистрирован: 12 сен 2011, 19:23

Re: djvubind на python3: включение русского модуля OCR ?

Сообщение awl » 05 июн 2016, 21:46

А почему его нельзя трогать? Он же находится в домашней директории ~/.config/djvubind/
OMNE NIMIUM NOCET

notauser
Сообщения: 1207
Зарегистрирован: 06 май 2012, 21:00

Re: djvubind на python3: включение русского модуля OCR ?

Сообщение notauser » 05 июн 2016, 21:50

Почему нельзя? Можно. Просто не всегда удобно. Вдруг понадобится другой язык. Или два.

Аватара пользователя
Delles
Сообщения: 1785
Зарегистрирован: 18 авг 2015, 19:52
Operating system: GNU/Linux : ROSA Desktop Fresh R7 (x86_64). Не обновлял.

Re: djvubind на python3: включение русского модуля OCR ?

Сообщение Delles » 05 июн 2016, 22:53

Большое спасибо! Всё работает безупречно.
Talk is cheap. Show me the code.
Linus Torvalds

Ответить