Python 结果不同

Python 结果不同,python,imagemagick,jpeg,ocr,tesseract,Python,Imagemagick,Jpeg,Ocr,Tesseract,我正在使用tesseract检测图像和PDF上的文本。我已经在OSX El Capitan上安装了它,它工作得很好。此外,我还将其安装在Ubuntu 16.04服务器上。但它的表现不是很好。在相同的图像上,结果是不同的。这两个系统的版本相同:Tesseract 4.00 Alpha,Leptonica 1.74.1 OSX Ubuntu tesseract 4.00.00alpha leptonica-1.74.1 libjpeg 8d (libjpeg-turbo 1.4.2) : libpn

我正在使用tesseract检测图像和PDF上的文本。我已经在OSX El Capitan上安装了它,它工作得很好。此外,我还将其安装在Ubuntu 16.04服务器上。但它的表现不是很好。在相同的图像上,结果是不同的。这两个系统的版本相同:Tesseract 4.00 Alpha,Leptonica 1.74.1

OSX

Ubuntu

tesseract 4.00.00alpha
leptonica-1.74.1
libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8
我在两个系统上都使用Wand包装器使用imagemagick/libmagick dev将image/pdf文件转换为python格式的jpeg。我想这和jpeg编码有关。为什么会这样

    all_pages = WI(filename=args['image'], resolution=300)
    all_pages.compression_quality = 100
    #i set the compression type but this doesn't changed anything
    #all_pages.compression = 'jpeg2000'
    image_jpeg = all_pages.convert('jpg')

    single_image = WI(image=image_jpeg.sequence[0])
    blob = single_image.make_blob("jpg")

    single_image.close()
    all_pages.close()

    img = PI.open(BytesIO(blob)).convert("L")
    greyImg = np.array(img)
    # do some image processing

    pIm_bw = PI.fromarray(output)      
    builder = pyocr.builders.LineBoxBuilder()
    print("LineBoxBuilder set")
    txt = tool.image_to_string(
        pIm_bw,
        lang=language,
        builder=builder
    )

原始文件出现问题。当我在处理之前保存文件并使用opencv(imread)再次加载时,两个系统上的结果是相同的。为什么会发生这种情况?如果使用相同的jpeg文件,是否会发生这种情况?是的,它发生在相同的文件上。问题发生在原始文件上。当我在处理之前保存文件并使用opencv(imread)再次加载时,两个系统上的结果是相同的。为什么会发生这种情况?如果使用相同的jpeg文件,会发生这种情况吗?是的,会发生在相同的文件上。
    all_pages = WI(filename=args['image'], resolution=300)
    all_pages.compression_quality = 100
    #i set the compression type but this doesn't changed anything
    #all_pages.compression = 'jpeg2000'
    image_jpeg = all_pages.convert('jpg')

    single_image = WI(image=image_jpeg.sequence[0])
    blob = single_image.make_blob("jpg")

    single_image.close()
    all_pages.close()

    img = PI.open(BytesIO(blob)).convert("L")
    greyImg = np.array(img)
    # do some image processing

    pIm_bw = PI.fromarray(output)      
    builder = pyocr.builders.LineBoxBuilder()
    print("LineBoxBuilder set")
    txt = tool.image_to_string(
        pIm_bw,
        lang=language,
        builder=builder
    )