web-dev-qa-db-ja.com

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を使用して削減しましたが、問題は解決しませんでした。

39
Asaf

これはおそらく、TIFF画像にアルファチャネルが含まれているため、Tesseractで使用されている基になるLeptonicaライブラリがそれをサポートしていないことを意味します。 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 メーリングリストの投稿

46
ZakW

ZakWの投稿をありがとう、あなたは私に正しい方向を示しました。とにかく、「-深さ8」を設定する必要もありました。私が試したものは何でも、OCRの品質は十分ではありませんでした。

私のために働いたのはこの解決策です:

ghostscript -o document.tiff -sDEVICE=tiffgray -r720x720 -g6120x7920 -sCompression=lzw document.pdf
tesseract document.tiff document -l deu
vim document.txt

このようにして、ドイツ語のウムラウトで完璧なテキストを得ました。

19
Florian Lagg

変換を次の行に調整すると役に立ちました。

convert -density 300 input.pdf -depth 8 -background white -alpha Off output.tiff

他の回答は+Matteの代わりに非推奨の-alpha Offフラグを使用しているため、機能しませんでした。

5
Entertain

Libtiff_toolsが提供するコマンド「tiffinfo」を使用して、srcイメージのTIFF形式を確認してみてください。ピクセルあたりのビット数(bpp)とピクセルあたりのサンプル数(spp)の値が異なる多数のTIFF形式が存在します。

Error in pixReadFromTiffStream: spp not in set {1,3,4}

「spp」値2はTIFFには無効です。

ImageMagickの 'convert'を使用して.pngから.tifに変換する代わりに、GimpからTIFF形式に直接保存することで問題を解決しました。

参照: TIFF形式

5
asl_marc