Есть несколько картинок в директории. На картинках - текст и картинка. Их нужно распознать утилитой tesseract
, присвоить каждой из них имя, которое распозналось с этой картинки.
Т.е. каждый файл нужно распознать и назвать в соответствии с текстом в нем. А потом перекинуть на винду, чтобы винда при этом не ругалась на нечитабельные символы.
Для этого написан скрипт (взяла отсюда, тему изучила на предмет соответствия моим нуждам):
#!/bin/sh
for filename in *.jpg; do
newfilename=$(tesseract "$filename" stdout -l rus)
mv "$filename" "$newfilename".jpg
done
Скрипт работает, распознает, переводит на русский и присваивает русские названия. Но после выполнения скрипта вывод такой:
Слишком длинное имя файла (для одного из файлов - текст действительно большой в картинке, а распозналось всё)
Detected 9 diacritics
При распознавании, насколько я поняла, распознаются спецсимволы, которых нет в картинке, а чаще - спецсимволы из разных кодировок. Пример:
—®— нвдгтигд-еп. jpg
При этом после пробелов тож есть какие-то неотображаемые символы
Вопрос 1. Как указать в скрипте, чтобы при распознавании распознавать только русские буквы в кодировке UTF8? Или исключать все остальные, кроме русских/английских?
Вопрос 2. Можно как-то указать, чтобы сильно длинные имена файлов обрезались до 150 символов, например? Если можно, то как?