1 cgg带你建个工程
如图 不然你的pip baidu-aip 用不了
先对图片进行一点处理
$ 灰度处理
$ 滤波处理
参考
import cv2
import os
defpreprocess_images(input_folder, output_folder):# 确保输出文件夹存在ifnot 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 isNone: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客户端初始化代码defget_file_content(filePath):withopen(filePath,"rb")as fp:return fp.read()defchar_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)defprocess_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)
玩
本文转载自: https://blog.csdn.net/m0_73412753/article/details/143833805
版权归原作者 DevangLic 所有, 如有侵权,请联系我们删除。
版权归原作者 DevangLic 所有, 如有侵权,请联系我们删除。