C# 圖片識別(支持21種語言)

圖片識別的技術到幾天已經很成熟了,只是相關的資料很少,為了方便在此匯總一下(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:為圖片路徑,startXstartY坐標均為0即可,widthheight圖片的寬和高。


方式二、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為讀取圖片的文字類型枚舉。


本文源碼下載地址:http://files.cnblogs.com/stone_w/OCR.rar?






本文轉自王磊的博客博客園博客,原文鏈接:http://www.cnblogs.com/vipstone/archive/2011/10/08/2202397.html,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256627.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256627.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256627.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

搭建Git Server - Centos+Gitosis

參考并部分轉載自&#xff1a;http://www.pfeng.org/archives/757 1. 安裝依賴 yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel git python python-setuptools2. 安裝gitosis git clone git://github.com/res0nat0r/gitosis.git cd…

php中rsa加密及解密和簽名及驗簽

加密的內容長度限制為密鑰長度少11位,如128位的密鑰最多加密的內容為117個長度。 公鑰加密    $public_contentfile_get_contents(公鑰路徑);    $public_keyopenssl_get_publickey($public_content);        $original_str待加密的內容;    $original_arr…

Opencv ---像素坐標轉世界坐標(已知外參)

只能求取已知外參的世界坐標平面上的世界坐標&#xff0c;具體公式如圖片所示&#xff01; PS&#xff1a;字丑請諒解&#xff01;

最優化5-8章重點(考試點全)

10道題&#xff0c;每道題10分&#xff0c;5-8章大概4題左右&#xff0c;后面的章節主要考的是概念題

多對多關聯映射(雙向)

關聯映射方面的最后一篇了&#xff0c;我覺得映射文件的編寫是使用hibernate的基礎&#xff0c;而關聯映射又是基礎的基礎&#xff0c;所以這方面分的細一些&#xff0c;羅嗦一些&#xff0c;說明白就好&#xff0c;呵呵。多對多關聯(雙向)&#xff0c;相對單向&#xff0c;在實…

sort-排座椅

題目描述 Description上課的時候總有一些同學和前后左右的人交頭接耳&#xff0c;這是令小學班主任十分頭疼的一件事情。不過&#xff0c;班主任小雪發現了一些有趣的現象&#xff0c;當同學們的座次確定下來之后&#xff0c;只有有限的D對同學上課時會交頭接耳。同學們在教室中…

JSONModel的基本使用

JSONModel 是一個庫,它能智能并且快速的創建出數據 model,你可以在你的 iOS 項目或者 OSX 項目上使用它。 使用前準備 添加 JSONModel 到你的工程中 1、需要的環境: ARC,iOS 5.0 / OSX 10.7 引入框架SystemConfiguration.framework2、獲取途徑&#xff1a; 1&#xff09;、通過…

圖像處理 伽瑪校正

http://blog.csdn.net/lichengyu/article/details/20840135 本質上是關于灰度的一個冪函數&#xff0c;當系數gamma大于1時&#xff0c;低灰度值的動態范圍減小&#xff0c;高灰度值的動態范圍增大&#xff0c;整體的灰度值減小&#xff1b;gamma小于1時則相反&#xff1b; 人…

matlab常用工具箱的調用指令

轉自:http://blog.sina.com.cn/s/blog_86186c970102va9g.html Matlab常用工具箱的調用命令 1. 優化工具箱?? 用途:優化問題 調用命令:在Command Window輸入“optimtool”?,其窗口如下 圖1 Optimization Tool? 2. 神經網絡工具箱? 用途:數據擬合、模式識別和分類…

tomcat起不來的問題已經解決

tomcat 起不來的問題:\apache-tomcat-6.0.10\bin 中startup.bat 起不來&#xff0c;一閃就沒了。說明&#xff1a;環境變量沒有配置好。解決辦法&#xff1a;配置環境變量&#xff1a;JAVA_HOME C:\Program Files\Java\jdk1.6.0_03就可以解決問題了本文轉自 yuwenhu 51CTO博客…

js寫法【3】

var m[];m[m.length]xx;//相當于push 對Repeat方法提供了8種寫法做比較&#xff0c;這一點還是不錯的。轉載于:https://www.cnblogs.com/baozhu/p/4862242.html

Eclipse設置控制臺日志輸出位置

1、選擇服務器配置 2、設置輸出文件路徑 轉載于:https://www.cnblogs.com/Neil223/p/5759693.html

現代制造工程——第七章(軋制和鍛造)

考點基于書本以及PPT的題目 一、軋制 二、鍛造

圖像邊緣梯度的定義

http://blog.csdn.net/u014020344/article/details/50196635

Jquery_JQuery之DataTables強大的表格解決方案

1、DataTables的默認配置 $(document).ready(function() { $(‘#example’).dataTable(); } ); 示例&#xff1a;http://www.guoxk.com/html/DataTables/Zero-configuration.html 2、DataTables的一些基礎屬性配置 “bPaginate”: true, //翻頁功能 “bLengthChange”: true, /…

內存管理1retain和release

Student.h: #import <Foundation/Foundation.h> interface Student : NSObject property int age; //默認會生成一個_age屬性 end Student.m: #import "Student.h" implementation Student //synthesize age_age;//xcode4.5中可以不使用synthesise方法&a…

目標檢測的圖像特征提取之(一)Hog特征提取

Hog特征實質是&#xff1a;梯度的統計信息,即針對邊緣作特征提取 意義&#xff1a;目標的表象和形狀 轉載于zouxy09大神的文章&#xff0c;加上自己些微的理解和應用&#xff01; http://blog.csdn.net/zouxy09/article/details/7929348/ 上述基本講清楚了&#xff0c;其實…

redis類型[string 、list 、 set 、sorted set 、hash]

1. Keys redis本質上一個key-value db&#xff0c;所以我們首先來看看他的key. 首先key也是字符串類型&#xff0c;但是key中不能包括邊界字符&#xff1b;由于key不是binary safe的字符串&#xff0c;所以像"my key"和"mykey\n"這樣包含空格和換行的key是…

matlab simulink筆記02——延遲模塊delay與單位延遲模塊unit delay

延遲模塊 單位延遲模塊 延遲模塊具有復位功能,當滿足復位條件時會進行復位操作,即輸出的值會恢復到初始值,而單位延遲模塊沒有復位功能; 延遲模塊的步長是可以設置的,而單位延遲模塊的步長固定為1,不可以改變