EasyOCR 因不兼容产生的 ValueError 与 AttributeError


        基于 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#',
 '大众众众众']
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值