Tesseract和tiff格式 - spp不在集{1,3}

时间:2011-02-22 20:22:52

标签: tesseract

尝试运行此命令时:

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减少了它,但这并没有解决问题。

4 个答案:

答案 0 :(得分:44)

这可能意味着您的TIFF图像具有Alpha通道,因此Tesseract使用的底层Leptonica库不支持它。如果您正在使用Imagemagick,请注意-draw等操作可能会导致添加Alpha通道。如果您在工作流程中使用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 mailing list posting; tesseract-ocr mailing list posting

答案 1 :(得分:17)

感谢您的ZakW帖子,您指出了正确的方向。 无论如何我还需要设置'-depth 8'。无论我做什么,质量对于OCR都不够好。

对我来说有用的是这个解决方案:

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

这样我就可以用德语的变形金刚获得完美的文本。

答案 2 :(得分:4)

您可以尝试使用libtiff_tools提供的命令'tiffinfo'来验证src图像的TIFF格式。存在许多TIFF格式,每像素位数(bpp)和每像素采样数(spp)具有不同的值。

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

'spp'值为2对TIFF无效。

我通过直接从Gimp保存为TIFF格式解决了这个问题,而不是使用ImageMagick的'convert'从.png转换为.tif。

另请参阅:TIFF format

答案 3 :(得分:2)

将转换调整为以下一行确实对我有所帮助。

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

请注意,其他答案对我不起作用,因为它们使用了已弃用的+matte标志而不是-alpha Off