- 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 时,发生两个异常。测试图片如下:
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#', '大众众众众']



