You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Pytesseract出现的PermissionError: [WinError 5]访问被拒绝问题?

问题解决方案

一、解决OpenCV无法读取图片的问题

  • 避开OneDrive路径:将图片从OneDrive目录复制到本地普通目录(比如C:\Users\aidan\Desktop),修改代码中的图片路径为r'C:\Users\aidan\Desktop\download.jpg',避免OneDrive同步带来的权限或文件锁定问题。
  • 验证文件有效性:确认download.jpg未损坏,可通过系统图片浏览器打开测试;若文件名存在特殊字符,尝试重命名为简单名称(如test.jpg)。
  • 修复颜色转换代码:原代码中cv2.cvtColor的结果未赋值,且未判断图片是否读取成功,需补充判断和赋值逻辑:
    image = cv2.imread(r'C:\Users\aidan\Desktop\download.jpg')
    if image is None:
        print("无法读取图片,请检查路径或文件完整性")
        exit()
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)  # 赋值给变量才会生效
    

二、解决Tesseract权限拒绝问题

  • 修正Tesseract路径:原代码仅指向Tesseract的安装文件夹,需指定到tesseract.exe的完整路径:
    pytesseract.pytesseract.tesseract_cmd = r"C:\\Users\\aidan\\AppData\\Local\\Tesseract-OCR\\tesseract.exe"
    

修正后的完整代码

import pytesseract
import cv2

# 指定tesseract.exe的完整路径
pytesseract.pytesseract.tesseract_cmd = r"C:\\Users\\aidan\\AppData\\Local\\Tesseract-OCR\\tesseract.exe"

# 读取图片(使用非OneDrive路径)
image = cv2.imread(r'C:\Users\aidan\Desktop\download.jpg')
if image is None:
    print("无法读取图片,请检查路径或文件完整性")
    exit()

# 转换颜色空间并赋值
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 识别文字
print(pytesseract.image_to_string(image))

# 显示图片并释放资源
cv2.imshow('Result', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

内容的提问来源于stack exchange,提问作者Aidan Bologna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 10:45:39