C# 图片识别
来源:互联网 发布:淘宝怎么查卖家电话 编辑:程序博客网 时间:2024/05/03 02:40
图片识别的技术到几天已经很成熟了,只是相关的资料很少,为了方便在此汇总一下(C#实现),方便需要的朋友查阅,也给自己做个记号。
图片识别的用途:很多人用它去破解网站的验证码,用于达到自动刷票或者是批量注册的目的,但我觉得它最吸引我的地方是可以让一些书写的东西,自动识别成电脑上的文字,比如说手拟的合同,修改过的书面论文或者是文档,每月的花费发票需要在电脑上录入或者是汇总信息,日记本上的文章要转移到电脑上等等,我们现在就不用再头痛把它们在电脑上敲写一遍了。
本文介绍两种比较主流和成熟的识别方式:
方式一、Asprise-OCR实现。
方式二、Microsoft Office Document Imaging(Office 2007) 组件实现。
方式一、Asprise-OCR的使用。 遗憾的是不支持中文
Asprise-OCR下载地址:
http://asprise.com/product/ocr/download.php?lang=csharp
其中需要使用的3个dll是AspriseOCR.dll、DevIL.dll、ILU.dll。
需要注意的是这几个.dll是vc写的引用要在程序中用DllImport引用,关键代码:
[DllImport("AspriseOCR.dll", EntryPoint = "OCR", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr OCR(string file, int type);
[DllImport("AspriseOCR.dll", EntryPoint = "OCRpart", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr OCRpart(string file, int type, int startX, int startY, int width, int height);
[DllImport("AspriseOCR.dll", EntryPoint = "OCRBarCodes", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr OCRBarCodes(string file, int type);
[DllImport("AspriseOCR.dll", EntryPoint = "OCRpartBarCodes", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr OCRpartBarCodes(string file, int type, int startX, int startY, int width, int height);
调用代码很简单只有一句:
MessageBox.Show(Marshal.PtrToStringAnsi(OCRpart(img_path, -1, startX, startY, width, height)));
其中img_path:为图片路径,startX、startY坐标均为0即可,width、height图片的宽和高。
方式二、Microsoft Office Document Imaging(Office 2007) 组件实现。
在使用之前需要给大家说的是Imaging 组件的兼容性不是很好,使用win 7 office 2007的时必须打上office 2007 sp1或者sp2补丁,读取中文才行。
sp1补丁地址(226M) :
http://download.microsoft.com/download/1/6/5/1659d607-8696-4001-8072-efaedd70dd30/office2007sp1-kb936982-fullfile-zh-cn.exe
sp2补丁地址(301 MB):
http://download.microsoft.com/download/A/3/9/A39E919E-AFA8-4128-9249-51629206C70F/office2007sp2-kb953195-fullfile-zh-cn.exe
给项目添加组件引用,如图:
使用代码:
MODI.Document doc = new MODI.Document();
doc.Create(img_Path);
MODI.Image image;
MODI.Layout layout;
doc.OCR(MODI.MiLANGUAGES.miLANG_CHINESE_SIMPLIFIED, true, true); // 识别简体中文
for (int i = 0; i < doc.Images.Count; i++)
{
image = (MODI.Image)doc.Images[i];
layout = image.Layout;
sb.Append(layout.Text);
}
MessageBox.Show(sb.ToString());
其中img_Path为图片路径,MODI.MiLANGUAGES为读取图片的文字类型枚举。
- C# 图片识别
- C#图片文字识别
- 图片识别word c#
- C#图片文字识别
- c#识别图片验证码
- C# 图片识别asprise-ocr使用步骤
- c#验证码识别、图片二值化、分割、分类、识别
- 图片验证码识别的类(C#源码)
- 用于验证码图片识别的类 C#
- 用于验证码图片识别的类续 C#
- 用于验证码图片识别的类(C#源码)
- 用于验证码图片识别的类(C#源码)
- 用于验证码图片识别的类(C#源码)
- C#识别图片验证码【原理:思路篇】
- C# 图片识别(支持21种语言)
- 用于验证码图片识别的类(C#源码)
- 用于验证码图片识别的类(C#源码)
- C# 图片识别(支持21种语言)
- Error setting expression 'file' with value '[Ljava.lang.String;@1e940b'
- 排列组合代码实现
- 构造内核源码树
- 计算机科学箴言集
- Dojo1.8系列教程四 ---- Dojo的配置(dojoConfig的使用)
- C# 图片识别
- 常用排序方法实现
- 多窗口的创建
- [Happy BASH] BASH的loop学习笔记
- 学习android等记录
- JavaScript随心所欲的定制 弹出窗口(让你相见恨晚)
- C陷阱与缺陷》的一些心得体会-----1
- 学习OpenCV——粒子滤波
- 《C陷阱与缺陷》读书笔记-----2