このコマンドを実行しようとしている間:
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を使用して削減しましたが、問題は解決しませんでした。
これはおそらく、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 メーリングリストの投稿
ZakWの投稿をありがとう、あなたは私に正しい方向を示しました。とにかく、「-深さ8」を設定する必要もありました。私が試したものは何でも、OCRの品質は十分ではありませんでした。
私のために働いたのはこの解決策です:
ghostscript -o document.tiff -sDEVICE=tiffgray -r720x720 -g6120x7920 -sCompression=lzw document.pdf
tesseract document.tiff document -l deu
vim document.txt
このようにして、ドイツ語のウムラウトで完璧なテキストを得ました。
変換を次の行に調整すると役に立ちました。
convert -density 300 input.pdf -depth 8 -background white -alpha Off output.tiff
他の回答は+Matte
の代わりに非推奨の-alpha Off
フラグを使用しているため、機能しませんでした。
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形式