Python使用pytesseract读取图片报错Unsupported image object求助
解决pytesseract报错"Unsupported image object"的方案
你用OpenCV读取图片后传给pytesseract时出现这个错误,主要有几个常见原因和解决办法:
检查图片是否成功读取
cv2.imread如果找不到文件或者路径有误,会返回None,这时候传给pytesseract就会触发"Unsupported image object"错误。先加个判断确认:img = cv2.imread('tes_palabra.png') if img is None: print("图片读取失败,请检查文件路径是否正确") exit()注意如果图片不在当前脚本运行的目录下,要使用绝对路径。
转换图片颜色空间
OpenCV默认以BGR格式读取图片,但pytesseract需要的是RGB格式,格式不匹配也会导致这个错误。转换格式即可:img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) words = pytesseract.image_to_string(img_rgb)升级依赖包
如果上面两步都没用,可能是pytesseract或opencv-python的版本太旧,存在兼容性问题。执行升级命令:pip install --upgrade pytesseract opencv-python
修改后的完整代码示例:
import cv2 import pytesseract pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract' img = cv2.imread('tes_palabra.png') if img is None: print("图片读取失败,请检查文件路径") exit() # 转换为pytesseract兼容的RGB格式 img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) words = pytesseract.image_to_string(img_rgb) print(words)
内容的提问来源于stack exchange,提问作者stick
相关产品推荐
相关产品推荐

