当前位置: 首页 > article >正文

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

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 = 1

    for 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 += 1

    print("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.kler.cn/a/403273.html

相关文章:

  • 【题解】—— LeetCode一周小结46
  • 如何使用Jmeter做性能测试?
  • JavaSrcipt 函数高级
  • 掌握移动端性能测试利器:深入JMeter手机录制功能
  • 【AI编程实战】安装Cursor并3分钟实现Chrome插件(保姆级)
  • NVR接入录像回放平台EasyCVR视频融合平台加油站监控应用场景与实际功能
  • 蓝桥杯每日真题 - 第17天
  • django宠物服务管理系统
  • Oracle SQL*Plus中的SET VERIFY
  • CSS+JQuery 实现弹力球效果,碰到屏幕边框弹回
  • Node.js 安装与开发环境配置全指南
  • AI Large Language Model
  • SQLite Glob 子句
  • 攻防世界-web php_rce[wp]
  • django基于Python的农产品销售系统的设计与实现
  • 网络安全-------防止被抓包
  • 绕过CDN寻找真实IP
  • C++编程玩转物联网:用树莓派Pico点亮RGB彩灯世界
  • JavaEE专栏介绍
  • gitclone失败
  • vmWare虚拟环境centos7安装Hadoop 伪分布式实践
  • ✅DAY30 贪心算法 | 452. 用最少数量的箭引爆气球 | 435. 无重叠区间 | 763.划分字母区间
  • 【Maven】Nexus几个仓库的介绍
  • 鸿蒙hvigor构建任务依赖与生命周期简介
  • 02_Spring_IoC实现
  • Asp.net Core Hosted Service(托管服务) Timer (定时任务)