EasyOCR 因不兼容产生的 ValueError 与 AttributeError

文章目录

    • 1. ValueError: Invalid input type. Supporting format = string(file path or url), bytes, numpy array
    • 2. AttributeError: 'NoneType' object has no attribute 'shape'

        基于 jupyter-lab,第一次在 python 中使用 EasyOCR 时,发生两个异常。测试图片如下:
EasyOCR 因不兼容产生的 ValueError 与 AttributeError_第1张图片

1. ValueError: Invalid input type. Supporting format = string(file path or url), bytes, numpy array

        运行代码:

import easyocr
from pathlib import Path
WORK_PATH = Path('E:/test')
WORK_FILE = '图片_1.jpg'
reader = easyocr.Reader(['ch_sim', 'en'], gpu = False)
result = reader.readtext((WORK_PATH / WORK_FILE), detail = 0)
result

        产生如下异常(第一个异常):

ValueError: Invalid input type. Supporting format = string(file path or url), bytes, numpy array

        发生此 ValueError 异常的原因是 pathlib 与 EasyOCR 的不兼容。修改代码如下,则出现 AttributeError (下一个异常)。

import easyocr
from pathlib import Path
WORK_PATH = Path('E:/test')
WORK_FILE = '图片_1.jpg'
reader = easyocr.Reader(['ch_sim', 'en'], gpu = False)
result = reader.readtext((WORK_PATH / WORK_FILE).as_posix(), detail = 0)
result
AttributeError: 'NoneType' object has no attribute 'shape'

2. AttributeError: ‘NoneType’ object has no attribute ‘shape’

        发生此 AttributeError 异常的原因竟然是 文件名有中文 含有中文。修改文件名如下,则代码正常:

import easyocr
from pathlib import Path
WORK_PATH = Path('E:/test')
WORK_FILE = 'pic_1.jpg'
reader = easyocr.Reader(['ch_sim', 'en'], gpu = False)
result = reader.readtext((WORK_PATH / WORK_FILE).as_posix(), detail = 0)
result

        内容输出如下:

['EasyoCR测试图片',
 'TIOBE排行榜是根据互联网上有经验的程序员',
 '课程和第三方',
 '厂商的数量',
 '并使用搜索引擎 (如Google Bing',
 'Yahoo!)',
 '以及',
 'Wikipedia',
 'Amazon',
 'YouTube和Baidu (百度)统计出排名数据,',
 '只是反映某个编程语言的热门程度。并不能说明一门编程语言好不',
 '好。或者一门语言所编写的代码数量多少',
 '人生苦短。我用 Python',
 '序号',
 '编程语言',
 '分数',
 'Python',
 '大大大大大',
 '2',
 'C',
 '大大大大众',
 '3',
 'JAVA',
 '大大大众众',
 '4',
 'C ++',
 '大大众众众',
 '5',
 'C#',
 '大众众众众']

你可能感兴趣的:(python,开发语言)