Windows10下pytesseract出现PermissionError(WinError5)权限拒绝问题求助
解决OCR程序的PermissionError: [WinError 5]权限拒绝问题
核心问题排查与修复步骤:
修正Tesseract可执行文件路径
你的代码中tesseract_cmd仅指向Tesseract的安装文件夹,未指定具体的tesseract.exe文件,这会导致pytesseract无法正确调用可执行程序,进而触发权限错误。修改路径如下:pytesseract.pytesseract.tesseract_cmd = "C:\\Users\\hypro\\AppData\\Local\\Programs\\Tesseract-OCR\\tesseract.exe"修正图片路径的转义问题
图片路径中的单反斜杠会被Python解析为转义字符,可能导致无法正确读取图片,间接引发异常。改为双反斜杠或原始字符串格式:# 方式1:双反斜杠 img = cv2.imread('C:\\Users\\hypro\\Downloads\\image1.jpg') # 方式2:原始字符串 img = cv2.imread(r'C:\Users\hypro\Downloads\image1.jpg')以管理员身份运行程序
右键点击Python IDE或脚本文件,选择「以管理员身份运行」,规避系统权限限制导致的Tesseract调用失败。检查临时文件目录权限
pytesseract会在系统临时目录生成临时文件,若该目录权限不足也会触发权限错误。可手动指定有权限的临时目录:import tempfile # 设置自定义临时目录(确保你拥有读写权限) tempfile.tempdir = "C:\\Users\\hypro\\AppData\\Local\\Temp"
完整修正后的代码示例:
import cv2 import pytesseract import numpy as np import tempfile # 设置自定义临时目录 tempfile.tempdir = "C:\\Users\\hypro\\AppData\\Local\\Temp" # 修正Tesseract可执行文件路径 pytesseract.pytesseract.tesseract_cmd = "C:\\Users\\hypro\\AppData\\Local\\Programs\\Tesseract-OCR\\tesseract.exe" # 修正图片路径并检查是否读取成功 img = cv2.imread(r'C:\Users\hypro\Downloads\image1.jpg') if img is None: print("无法读取图片,请检查路径是否正确") exit() # 图像预处理流程 gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) gray, img_bin = cv2.threshold(gray,128,255,cv2.THRESH_BINARY | cv2.THRESH_OTSU) gray = cv2.bitwise_not(img_bin) kernel = np.ones((2, 1), np.uint8) img = cv2.erode(gray, kernel, iterations=1) img = cv2.dilate(img, kernel, iterations=1) # 执行OCR识别 out_below = pytesseract.image_to_string(img) print("OUTPUT:", out_below)
内容的提问来源于stack exchange,提问作者Hypron Master
相关产品推荐
相关产品推荐

