import os from PIL import Image import pytesseract from openpyxl import Workbook def ocr(image_path): img = Image.open(image_path) result = pytesseract.image_to_string(img, lang='eng') return result def save_to_excel(result_list): wb = Workbook() ws = wb.active for result in result_list: ws.append([result]) wb.save('result.xlsx') if __name__ == '__main__': image_dir = r'C:\Users\KevinGuo\OneDrive\桌面\1.jpg' # 图片所在目录 result_list = [] for image_name in os.listdir(image_dir): image_path = os.path.join(image_dir, image_name) result = ocr(image_path) result_list.append(result) save_to_excel(result_list) print('处理完成!')
时间: 2024-03-02 12:52:03 浏览: 123
代码中存在问题,需要进行修改。具体问题如下:
1. image_dir指定的是图片文件的路径,而不是图片所在的目录。如果需要处理多张图片,请将image_dir指定为图片所在的目录。
2. os.listdir()返回的是指定目录下的所有文件和子目录,如果需要筛选出图片文件,请使用os.path.splitext()函数,判断文件扩展名是否为图片格式。
3. 处理单张图片时,需要将result_list改为result,因为只有一张图片。
修改后的代码如下:
```python
import os
from PIL import Image
import pytesseract
from openpyxl import Workbook
def ocr(image_path):
img = Image.open(image_path)
result = pytesseract.image_to_string(img, lang='eng')
return result
def save_to_excel(result):
wb = Workbook()
ws = wb.active
ws.append([result])
wb.save('result.xlsx')
if __name__ == '__main__':
image_path = r'C:\Users\KevinGuo\OneDrive\桌面\1.jpg' # 图片文件路径
result = ocr(image_path)
save_to_excel(result)
print('处理完成!')
```
以上代码是处理单张图片并将OCR识别结果存入Excel的示例代码。如果需要处理多张图片,可以参考之前的代码示例,使用for循环进行处理。
阅读全文