您的位置:首页 > 娱乐 > 八卦 > 中国今日军事头条_深圳进一步强化疫情防控_aso优化什么意思是_360优化大师下载安装

中国今日军事头条_深圳进一步强化疫情防控_aso优化什么意思是_360优化大师下载安装

2024/12/22 18:53:05 来源:https://blog.csdn.net/FL1623863129/article/details/144463780  浏览:    关键词:中国今日军事头条_深圳进一步强化疫情防控_aso优化什么意思是_360优化大师下载安装
中国今日军事头条_深圳进一步强化疫情防控_aso优化什么意思是_360优化大师下载安装

【算法介绍】

ddddocr是一个强大的Python OCR(光学字符识别)库,特别适用于验证码识别。它利用深度学习技术,如卷积神经网络(CNN)和循环神经网络(RNN),对图像中的文字进行高效准确的识别。虽然ddddocr本身是一个Python库,但你可以通过一些方法将其功能集成到Winform应用程序中,以进行验证码识别、文字识别和文字检测。

要在Winform中部署ddddocr的ONNX模型进行验证码识别等任务,你可以考虑以下步骤:

  1. 环境准备:确保你的Winform应用程序可以调用Python脚本或库。这通常涉及安装Python解释器和相关的Python库。
  2. 安装ddddocr:在你的Python环境中安装ddddocr库。
  3. 模型准备:如果ddddocr使用了ONNX模型,确保该模型已正确下载并可在Python环境中加载。
  4. 集成Python和Winform:你可以通过C#的Python.NET库或其他类似工具来调用Python脚本或函数,从而在Winform中集成ddddocr的功能。
  5. 编写代码:在Winform应用程序中编写代码,调用ddddocr的API进行验证码识别、文字识别或文字检测。
  6. 测试和调试:确保集成的功能正常工作,并根据需要进行调整和优化。

请注意,由于ddddocr是一个Python库,直接在Winform中部署其ONNX模型可能需要一些额外的工作。因此,建议详细阅读ddddocr的文档,并考虑使用Python和C#之间的桥梁工具来实现集成。

【源码地址】

github.com/sml2h3/ddddocr

【界面设计】

【效果展示】

文本识别结果可以在控制台查看

滑块识别目前效果不佳,暂时放弃研究,因为我们主要用于文字检测识别比较多。

【调用代码】

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenCvSharp;namespace FIRC
{public partial class Form1 : Form{string videoPath = null;public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){Mat ocr = new Mat(Application.StartupPath + "\\images\\ocr.jpg", ImreadModes.AnyColor);DDDDOCR ddddOcrOcrOld = new DDDDOCR(Application.StartupPath + "\\weights\\common_old.onnx", DdddOcrMode.ClassifyOld);var OcrOldResult = ddddOcrOcrOld.Classify(ocr.ToBytes());Console.WriteLine("旧版本文本识别结果:" + OcrOldResult);}private void button2_Click(object sender, EventArgs e){Mat ocr = new Mat(Application.StartupPath + "\\images\\ocr.jpg", ImreadModes.AnyColor);DDDDOCR ddddOcrOcrNew = new DDDDOCR(Application.StartupPath + "\\weights\\common.onnx", DdddOcrMode.ClassifyBeta);var OcrNewResult = ddddOcrOcrNew.Classify(ocr.ToBytes());Console.WriteLine("新版本文本识别结果:" + OcrNewResult);}private void Form1_Load(object sender, EventArgs e){}private void button3_Click(object sender, EventArgs e){Mat det = new Mat(Application.StartupPath + "\\images\\det.png", ImreadModes.AnyColor);DDDDOCR ddddOcrDet = new DDDDOCR(Application.StartupPath + "\\weights\\common_det.onnx", DdddOcrMode.Detect);var Detresult = ddddOcrDet.Detect(det.ToBytes());foreach (var item in Detresult){det.Rectangle(item, new Scalar(0, 0, 255), 2);}Console.WriteLine("目标识别到的坐标为:" + JsonSerializer.Serialize(Detresult));pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(det);}private void button4_Click(object sender, EventArgs e){//效果不佳,暂时不开发Mat tg = new Mat(Application.StartupPath + "\\images\\tg1.png", ImreadModes.AnyColor);Mat bg = new Mat(Application.StartupPath + "\\images\\bg1.png", ImreadModes.AnyColor);var (target_y, rect) = DDDDOCR.SlideMatch(tg, bg, 44, true);Console.WriteLine("SlideMatch滑块的Y坐标为:" + target_y + "\r\nSlideMatch滑块缺口方框为:" + JsonSerializer.Serialize<Rect>(rect));bg.Rectangle(rect, new Scalar(0, 255, 255), 2);pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(bg);}}
}

 【测试环境】

vs2019

netframework4.7.2

opencvsharp==4.8.0

onnxruntime==1.16.3

【运行步骤】

下载源码后使用vs2019打开,打开前确保vs安装的没问题并且C#模块安装好了。选择x64 debug即可直接运行看效果。如果报错可能DLL引用问题,可以参考我的其他博文。

【完整源码和模型文件下载】

download.csdn.net/download/FL1623863129/88540194

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com