开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1013|回复: 15
收起左侧

[其它源码] c# 调用百度ocr 识别验证码

[复制链接]
结帖率:82% (9/11)
发表于 2024-12-2 01:17:00 | 显示全部楼层 |阅读模式   福建省厦门市
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
using System;
using System.Drawing;
using System.IO;
using System.Threading.Tasks;
using PaddleOCRSharp;

public static class OCR
{
    // 全局 OCR 引擎实例(建议全局初始化一次)
    private static PaddleOCREngine engine;

    // 初始化 OCR 引擎(可以在应用程序启动时调用)
    public static void InitializeEngine(OCRModelConfig config, OCRParameter oCRParameter)
    {
        try
        {
            if (engine == null)
            {
                engine = new PaddleOCREngine(config, oCRParameter);
                Console.WriteLine("OCR 引擎已全局初始化");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"OCR 引擎初始化失败: {ex.Message}\n堆栈跟踪: {ex.StackTrace}");
            throw;
        }
    }

    /// <summary>
    /// 自动加载默认配置并初始化 OCR 引擎。
    /// </summary>
    public static void LoadDefaultConfig()
    {
        // 这里应该有逻辑来创建默认的 OCRModelConfig 和 OCRParameter 对象
        var defaultConfig = new OCRModelConfig(); // 假设这是默认配置
        var defaultParams = new OCRParameter();   // 假设这是默认参数

        InitializeEngine(null, defaultParams);
    }

    /// <summary>
    /// 异步地通过传递 Base64 编码的图像数据进行 OCR 识别,并返回识别结果。
    /// </summary>
    /// <param name="base64Image">Base64 编码的图像数据</param>
    /// <returns>识别到的文本</returns>
    public static async Task<string> RecognizeFromBase64Async(string base64Image)
    {
        try
        {
            // 检查 OCR 引擎是否已初始化
            if (engine == null)
            {
                throw new InvalidOperationException("OCR 引擎未初始化,请先调用 InitializeEngine 方法。");
            }

            // 去除 Base64 字符串中的 "data:image/*;base64," 前缀(如果存在)
            if (base64Image.StartsWith("data:image/"))
            {
                base64Image = base64Image.Substring(base64Image.IndexOf(',') + 1);
            }

            // 解码 Base64 字符串为字节数组
            byte[] imageBytes = Convert.FromBase64String(base64Image);

            // 将字节数组转换为 Bitmap 对象
            using (var ms = new MemoryStream(imageBytes))
            using (var bitmap = new Bitmap(ms))
            {
                // 使用 OCR 引擎进行文本识别
                OCRResult ocrResult = await Task.Run(() => engine.DetectText(bitmap));

                // 返回识别到的文本
                return ocrResult?.Text ?? "未识别到任何文本";
            }
        }
        catch (Exception ex)
        {
            // 捕获并记录异常
            Console.WriteLine($"发生错误: {ex.Message}\n堆栈跟踪: {ex.StackTrace}");
            return $"识别失败: {ex.Message}";
        }
    }
}





上面的源码单独用一个文件    private async void button6_Click(object sender, EventArgs e)
{
     string code = await OCR.RecognizeFromBase64Async("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");
     textBox1.Text = code;
}  这个是调用案例   传递参数是bs64  这个可以随便修改 传递字节集


签到天数: 1 天

发表于 2025-3-13 16:29:36 | 显示全部楼层   韩国
怎么用呢。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2025-3-7 01:31:59 高大上手机用户 | 显示全部楼层   湖北省咸宁市
回复 支持 反对

使用道具 举报

发表于 2024-12-3 21:22:18 | 显示全部楼层   北京市北京市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

发表于 2024-12-3 19:19:03 | 显示全部楼层   湖南省衡阳市
感谢分享
回复 支持 反对

使用道具 举报

发表于 2024-12-3 14:52:10 | 显示全部楼层   河北省保定市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 5 天

发表于 2024-12-3 08:03:51 | 显示全部楼层   山东省淄博市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 5 天

发表于 2024-12-3 07:53:59 | 显示全部楼层   湖北省十堰市
学习进步!......
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 5 天

发表于 2024-12-3 06:52:30 | 显示全部楼层   江西省上饶市
很给力,赞一个。
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 3 天

发表于 2024-12-2 22:22:23 | 显示全部楼层   广东省深圳市
学习一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表