Формат Tesseract и tiff - spp не в наборе {1,3}
При попытке выполнить эту команду:
tesseract bond111.tif bond111 batch.nochop makebox
Я получаю следующую ошибку
Error in pixReadFromTiffStream: spp not in set {1,3}
Error in pixReadStreamTiff: pix not read
Error in pixReadTiff: pix not read
Предполагая, что spp not in set
является основной ошибкой здесь, что это значит?
Сначала у него были проблемы, потому что bpp был выше 24, поэтому я уменьшил его с помощью Gimp, но это не решило проблему.
Ответы
Ответ 1
Вероятно, ваш образ TIFF имеет альфа-канал, поэтому базовая библиотека Leptonica, используемая Tesseract, не поддерживает его. Если вы используете Imagemagick, имейте в виду, что такие операции, как -draw
, могут привести к добавлению альфа-каналов. Если вы используете convert
в своем рабочем процессе и хотите удалить канал снова сразу, сгладьте изображение перед записью, добавив -background white -flatten +matte
до имени выходного файла, например:
convert input.tiff -fill white -draw 'rectangle 10,10 20,20' -background white -flatten +matte output.tiff
Tesseract (ну, Leptonica) принимает PNG в эти дни и менее разборчив, поэтому может быть проще переносить ваш рабочий процесс на PNG в любом случае.
Источники: magick-users рассылка списка рассылки; tesseract-ocr рассылка списка рассылки
Ответ 2
Спасибо за ваш пост ZakW, вы указали мне правильное направление. Во всяком случае мне также нужно было установить "-depth 8". Качество было недостаточно хорошим для распознавания текста, что бы я ни пытался.
Что сработало для меня это решение:
ghostscript -o document.tiff -sDEVICE=tiffgray -r720x720 -g6120x7920 -sCompression=lzw document.pdf
tesseract document.tiff document -l deu
vim document.txt
Таким образом, я получил идеальный текст с умлаутами на немецком языке.
Ответ 3
Вы можете попробовать использовать команду tiffinfo, предоставленную libtiff_tools, чтобы проверить формат TIFF вашего изображения src. Существует несколько форматов TIFF с разными значениями для битов на пиксель (bpp) и Sample-per-pixel (spp).
Error in pixReadFromTiffStream: spp not in set {1,3,4}
Значение "spp" 2 недопустимо для TIFF.
Я решил проблему, сохранив непосредственно формат TIFF от Gimp, вместо того, чтобы конвертировать из .png в .tif с помощью ImageMagick 'convert'.
Смотрите также: Формат TIFF
Ответ 4
Настройка преобразования в следующую строку мне помогла.
convert -density 300 input.pdf -depth 8 -background white -alpha Off output.tiff
Обратите внимание, что другие ответы не сработали для меня, так как они используют устаревший флаг +matte
вместо -alpha Off
.