Страница 1 из 1
[Решено] djvubind на python3: включение русского модуля OCR ?
Добавлено: 05 июн 2016, 19:21
Delles
В
новособранной программе
djvubind (представляющей собой скрипт питона3, который делает djvu из картинок, с хорошим сжатием без видимых потерь качества картинки; предусмотрено также OCR), по умолчанию производится распознавание латиницы, а как включается русский модуль tesseract, отвечающей за распознавание, непонятно. Например, фраза «на стыке транзитных путей» распознается следующим образом: «Ha CTbIRe TpaH3nTHBIx nyTefi». М.б. знатоки питона3 подскажут, как включается русский модуль?
Re: djvubind на python3: включение русского модуля OCR ?
Добавлено: 05 июн 2016, 21:08
awl
В файле
~/.config/djvubind/config необходимо дополнить строку №19 необходимой опцией:
У меня тестовые 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
Re: djvubind на python3: включение русского модуля OCR ?
Добавлено: 05 июн 2016, 21:35
awl
Обнаружил свою ошибку.
Тестовые 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.
Re: djvubind на python3: включение русского модуля OCR ?
Добавлено: 05 июн 2016, 21:36
notauser
Можно еще как-то так попробовать, ну что бы config не трогать
http://manpages.org/djvubind
Re: djvubind на python3: включение русского модуля OCR ?
Добавлено: 05 июн 2016, 21:46
awl
А почему его нельзя трогать? Он же находится в домашней директории ~/.config/djvubind/
Re: djvubind на python3: включение русского модуля OCR ?
Добавлено: 05 июн 2016, 21:50
notauser
Почему нельзя? Можно. Просто не всегда удобно. Вдруг понадобится другой язык. Или два.
Re: djvubind на python3: включение русского модуля OCR ?
Добавлено: 05 июн 2016, 22:53
Delles
Большое спасибо! Всё работает безупречно.