【实操之 图像处理与百度api-python版本】

devtools/2024/12/5 3:32:12/

1 cgg带你建个工程

如图 不然你的pip baidu-aip 用不了
在这里插入图片描述

先对图片进行一点处理

$ 灰度处理
$ 滤波处理
参考

import cv2
import os
def preprocess_images(input_folder, output_folder):# 确保输出文件夹存在if not os.path.exists(output_folder):os.makedirs(output_folder)# 获取输入文件夹中所有图片的文件名image_files = [f for f in os.listdir(input_folder) if f.lower().endswith(('.png', '.jpg', '.jpeg'))]# 初始化计数器count = 1for image_file in image_files:# 构建完整的输入文件路径input_path = os.path.join(input_folder, image_file)# 读取图片image = cv2.imread(input_path)if image is None:print(f"Warning: Unable to read image {input_path}")continue# 转换为灰度图gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 应用高斯滤波去除噪声blurred_image = cv2.GaussianBlur(gray_image, (5, 5), 0)# 构建输出文件名(如 a01.png)output_file = f"a{count:02d}{os.path.splitext(image_file)[1]}"output_path = os.path.join(output_folder, output_file)# 保存处理后的图片到文件cv2.imwrite(output_path, blurred_image)# 打印处理结果print(f"Processed {input_path} and saved as {output_path}")# 增加计数器count += 1print("Processing complete.")# 调用函数处理图片
input_folder = "C:\\Users\\Administrator\\Downloads\\ora"
output_folder = "C:\\Users\\Administrator\\Downloads\\pred"
preprocess_images(input_folder, output_folder)

然后再申请百度api

https://console.bce.baidu.com/ai/?_=1634647029968&fromai=1#/ai/ocr/overview/index

在这里插入图片描述

领 66

在这里插入图片描述

看文档,改代码

在这里插入图片描述

发现报错

pip  install  baidu-aip
pip  install  chardet

像我一样 setting 中 自己检查

在这里插入图片描述

识别代码


import os
from aip import AipOcr""" 你的 APPID AK SK """  # 换自己的,包子
APP_ID = '11&&&&&&79'
API_KEY = 'lenZRk17s88888888888'     # 换自己的,包子
SECRET_KEY = 'E7RjDl0L66666666…………………………'  # 换自己的,包子client = AipOcr(APP_ID, API_KEY, SECRET_KEY)""" 读取文件 """
# 假设您已经有一个OCR客户端实例,这里用伪代码表示
# client = YourOCRClientInitializer()  # 替换为实际的OCR客户端初始化代码def get_file_content(filePath):with open(filePath, "rb") as fp:return fp.read()def char_change(data):# 从字典中提取 'words_result' 列表words_list = data.get('words_result', [])  # 使用get方法以防'words_result'键不存在# 提取单词并组合,同时处理可能的连字符words = []for result in words_list:word = result.get('words', '')  # 使用get方法以防'words'键不存在# 根据需要移除连字符或其他不需要的字符word = word.replace('-', '').replace(' ', '')  # 也可以考虑移除空格words.append(word)# 使用空格或其他分隔符(如果需要的话)连接单词# 在这个例子中,我们假设车牌号应该是连续的,所以不使用分隔符combined_word = ''.join(words)# 输出结果print(combined_word)def process_images_in_folder(folder_path, ocr_client):# 遍历文件夹中的所有文件for filename in os.listdir(folder_path):# 检查文件扩展名,只处理图片文件if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tiff')):file_path = os.path.join(folder_path, filename)# 读取图片内容image_content = get_file_content(file_path)# 调用OCR服务进行文字识别# 注意:这里假设ocr_client有一个名为basicGeneral的方法来处理图片# 并且该方法返回一个包含'words_result'键的字典recognition_result = ocr_client.basicGeneral(image_content)# 处理识别结果char_change(recognition_result)# 指定文件夹路径
folder_path = 'C:\\Users\\Administrator\\Downloads\\pred'
process_images_in_folder(folder_path,client)


http://www.ppmy.cn/devtools/139514.html

相关文章

《C++ 中 RNN 及其变体梯度问题的深度剖析与解决之道》

在当今人工智能蓬勃发展的浪潮中,递归神经网络(RNN)及其变体长短期记忆网络(LSTM)和门控循环单元(GRU)在处理序列数据方面展现出了强大的潜力。然而,当我们在 C中着手实现这些网络时…

Java 面试题及答案整理(2024 年金九银十最新版)

2024 年金九银十到了,发现网上很多 Java 面试题都没有答案,所以花了很长时间搜集整理出来了这套 Java 面试题大全~这套互联网 Java 工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java 面试、Spring、微服务、Linux、…

【前端】小程序实现预览pdf并导出

小程序实现预览pdf并导出 一、前言二、需要的wx api三、完整代码 一、前言 小程序没办法直接导出pdf或一些文档,只能借助api先将文件下载下来并打开,再让用户手动去保存。之前做“小程序当前页面截图转pdf导出”功能的时候,小程序好像也无法…

【从理论到应用】HTTP请求响应详解 (请求数据格式,请求方式,Web开发中的体现)

目录 一.HTTP协议 二.HTTP请求数据格式 请求方式 三.Web开发中的HTTP请求与响应 接收HTTP请求 同一响应格式 四.使用第三方工具发送HTTP请求(Apifox、postman、Yapi) 一.HTTP协议 HTTP(Hypertext Transfer Protocol,超…

[docker中首次配置git环境与时间同步问题]

11月没写东西,12月初赶紧水一篇。 刚开始搭建docker服务器时,网上找一堆指令配置好git后,再次新建容器后忘记怎么配了,,这次记录下。 一、git ssh指令法,该方法不用每次提交时输入密码 前期准备&#xff0…

详解 YOLOv5 模型运行参数含义以及设置及在 PyCharm 中的配置方法

详解 YOLOv5 模型运行参数含义以及设置及在 PyCharm 中的配置方法 这段代码中使用的命令行参数允许用户在运行 YOLOv5 模型时自定义多种行为和设置。以下是各个参数的详细说明和使用示例,以及如何在 PyCharm 中设置这些参数以确保正确运行带有参数的脚本。 命令行…

HTML技术贴:深入理解网页构建基础

引言 HTML(HyperText Markup Language)是构建网页和网络应用的基石。它是一种用于定义网页内容结构的标记语言,通过一系列的元素(elements)和属性(attributes),HTML文档告诉浏览器如…

【阅读记录-章节5】Build a Large Language Model (From Scratch)

目录 5. Pretraining on unlabeled data5.1 Evaluating generative text models5.1.1 Evaluating generative text models5.1.2 Calculating the text generation loss评估模型生成文本的质量 5.1.3 Calculating the training and validation set losses 5.2 Training an LLM5.…