Python实战:利用百度OCR批量修改证件照文件名
2024.08.29 15:08浏览量:11简介:本文介绍如何使用Python结合百度OCR(光学字符识别)技术,实现批量读取证件照中的文字信息,并根据这些信息自动修改文件名,提升文件管理的效率与准确性。适合处理大量含有身份信息的证件照,如身份证、护照等。
引言
在日常办公或数据整理中,我们经常需要处理大量的证件照,如身份证、护照等,并希望根据证件上的信息(如姓名、身份证号)来命名或分类这些照片。手动操作不仅耗时耗力,还容易出错。幸运的是,随着AI技术的发展,我们可以利用百度OCR(Optical Character Recognition,光学字符识别)技术来自动化这一过程。
准备工作
1. 安装必要的库
首先,确保你的Python环境已安装requests和Pillow库,用于发送HTTP请求和图片处理。同时,你需要安装百度AI开放平台的SDK,但在这里我们直接通过HTTP API调用。
pip install requests Pillow
2. 注册百度AI开放平台账号
访问百度AI开放平台,注册账号并创建应用,获取API Key和Secret Key。
3. 获取Access Token
使用API Key和Secret Key获取Access Token,它是调用OCR API的必需凭证。
import requestsimport jsondef get_access_token(api_key, secret_key):url = f"https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={api_key}&client_secret={secret_key}"response = requests.get(url)result = json.loads(response.text)return result['access_token']# 替换为你的API Key和Secret Keyapi_key = '你的API_KEY'secret_key = '你的SECRET_KEY'token = get_access_token(api_key, secret_key)
实现OCR识别
编写OCR识别函数
使用获取到的Access Token调用百度OCR API,对图片进行文字识别。
def ocr_image(token, image_path):url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic'headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': f'Bearer {token}'}params = {"url": image_path}# 注意:这里仅为示例,实际中可能需要将图片文件转换为Base64或上传至服务器后传入URL# 由于直接传入图片URL可能受限,这里假设已有图片URL或已处理为Base64编码# 这里使用伪代码展示处理流程# response = requests.post(url, data=params, headers=headers)# result = json.loads(response.text)# return result# 伪返回示例return {"words_result": [{"words": "张三"}, {"words": "123456789012345678"}]}# 示例调用# result = ocr_image(token, 'path_to_your_image.jpg')# print(result)
批量修改文件名
遍历文件夹中的图片文件
```python
from PIL import Image
import os
def rename_images_in_folder(folder_path, token):
for filename in os.listdir(folder_path):
if filename.lower().endswith((‘.png’, ‘.jpg’, ‘.jpeg’)):
image_path = os.path.join(folder_path, filename)
result = ocr_image(token, image_path) # 这里需要实际实现OCR识别
# 假设结果中的第一个词是姓名,第二个词是身份证号if result and len(result['words_result']) > 1:new_name = f"{result['words_result'][0]['words']}_{result['words_result'][1]['words']}.jpg"new_path = os.path.join(folder_path,

发表评论
登录后可评论,请前往 登录 或 注册