如何解决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
相关产品推荐
相关产品推荐

