Python read#mrz错误:找不到在';模式下读取指定文件的格式;i';

Python read#mrz错误:找不到在';模式下读取指定文件的格式;i';,python,ocr,Python,Ocr,下面的代码是我用来从passport读取mrz数据的代码,当我在本地计算机上运行它时,它工作得非常好,但当我尝试在服务器(Windows AWS服务器)上执行它时,它会抛出一个错误。 你能帮我解决这个错误吗 from PIL import Image import sys from passporteye import read_mrz import pytesseract mrz = read_mrz("C:/docs/IMG/PASSPORT/abc.png") 错误: Tracebac

下面的代码是我用来从passport读取mrz数据的代码,当我在本地计算机上运行它时,它工作得非常好,但当我尝试在服务器(Windows AWS服务器)上执行它时,它会抛出一个错误。 你能帮我解决这个错误吗

from PIL import Image
import sys
from passporteye import read_mrz
import pytesseract

mrz = read_mrz("C:/docs/IMG/PASSPORT/abc.png")
错误:

Traceback (most recent call last):
  File "C:/qfc_apps/edocs/PY/PASSPORT/passport.py", line 64, in <module>
    passport()
  File "C:/qfc_apps/edocs/PY/PASSPORT/passport.py", line 19, in passport
    mrz = read_mrz("C:/docs/IMG/PASSPORT/abc.png")
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\passporteye\mrz\image.py", line 337, in read_mrz
    mrz = p.result
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\passporteye\mrz\image.py", line 325, in result
    return self['mrz_final']
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\passporteye\util\pipeline.py", line 102, in __getitem__
    self._compute(key)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\passporteye\util\pipeline.py", line 109, in _compute
    self._compute(d)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\passporteye\util\pipeline.py", line 109, in _compute
    self._compute(d)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\passporteye\util\pipeline.py", line 109, in _compute
    self._compute(d)
  [Previous line repeated 1 more times]
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\passporteye\util\pipeline.py", line 111, in _compute
    results = self.components[cname](*inputs)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\passporteye\mrz\image.py", line 52, in __call__
    return self._imread(self.file)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\passporteye\mrz\image.py", line 37, in _imread
    img = skimage_io.imread(file, as_gray=self.as_gray, plugin='imageio')
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\skimage\io\_io.py", line 61, in imread
    img = call_plugin('imread', fname, plugin=plugin, **plugin_args)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\skimage\io\manage_plugins.py", line 210, in call_plugin
    return func(*args, **kwargs)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\imageio\core\functions.py", line 221, in imread
    reader = read(uri, format, "i", **kwargs)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\imageio\core\functions.py", line 139, in get_reader
    "Could not find a format to read the specified file " "in mode %r" % mode
ValueError: Could not find a format to read the specified file in mode 'i'
回溯(最近一次呼叫最后一次):
文件“C:/qfc_apps/edocs/PY/PASSPORT/PASSPORT.PY”,第64行,在
护照()
PASSPORT中第19行的文件“C:/qfc_apps/edocs/PY/PASSPORT/PASSPORT.PY”
mrz=read_mrz(“C:/docs/IMG/PASSPORT/abc.png”)
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\passorteye\mrz\image.py”,第337行,位于read_mrz中
mrz=p.result
结果文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\passorteye\mrz\image.py”,第325行
返回自我['mrz_final']
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\passorteye\util\pipeline.py”,第102行,在\uu getitem中__
自我计算(键)
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\passorteye\util\pipeline.py”,第109行,在\u compute中
自我计算(d)
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\passorteye\util\pipeline.py”,第109行,在\u compute中
自我计算(d)
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\passorteye\util\pipeline.py”,第109行,在\u compute中
自我计算(d)
[上一行又重复了1次]
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\passorteye\util\pipeline.py”,第111行,在\u compute中
结果=自身组件[cname](*输入)
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\passorteye\mrz\image.py”,第52行,在调用中__
返回self.\u imread(self.file)
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\passorteye\mrz\image.py”,第37行,在\u imread中
img=skimage\u io.imread(文件,as\u gray=self.as\u gray,plugin='imageio')
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\skimage\io\\u io.py”,第61行,imread
img=call\u plugin('imread',fname,plugin=plugin,**plugin\u args)
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\skimage\io\manage\u plugins.py”,第210行,在call\u plugin中
返回函数(*args,**kwargs)
文件“C:\Users\Administrator\AppData\Local\Programs\Python36\lib\site packages\imageio\core\functions.py”,第221行,在imread中
reader=read(uri,格式,“i”**kwargs)
文件“C:\Users\Administrator\AppData\Local\Programs\Python\36\lib\site packages\imageio\core\functions.py”,第139行,在get\u reader中
在模式%r%下找不到读取指定文件“”的格式
ValueError:在模式“i”下找不到读取指定文件的格式

经过数小时的研究,找到了解决方案,因此将我的解决方案发布给可能面临类似解决方案的其他人

我仍然不知道上面的代码有什么问题,但我设法解决了

passporteye的文档提到要么传递图像的路径,要么传递包含图像数据的字节流。由于path对我不起作用,所以我选择了第二种方法

使用以下代码可以解决我们的问题:-

image = cv2.imread("path of image")
import PIL.Image as Image
 import io
 pil_im = Image.fromarray(image)
 b = io.BytesIO()
 pil_im.save(b, 'jpeg')
 im_bytes = b.getvalue()

 mrz = read_mrz(im_bytes)

PassportEye版本可能与@SmartManoj重复,passport eye版本为1.4.1遵循上述链接并在代码中添加插件后,错误更改:-image=io.imread(文件名,plugin='matplotlib')****新错误:无法识别图像文件'C:/qfc_apps/docs/IMG/PASSPORT/abc.png'也提及该错误