資源簡介
一個圖片識別小工具,原先主要是識別以前公司的軟件注冊碼截圖里的數(shù)字和字母
(每次要一個一個框復制出來粘貼到注冊器里,很麻煩!),
因為注冊碼出現(xiàn)的字母和數(shù)字基本就那幾個,所以識別庫的范圍設定的比較少。
原理和算法在代碼中做了詳細說明。
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Text;
using?System.Windows.Forms;
namespace?iamge2text
{
????public?partial?class?FormLicense?:?Form
????{
????????/*
?????????*?開發(fā)思路:圖片灰度處理,二進制,然后和圖片中的字二進制庫精確對比
?????????*?
?????????*?獲取字庫:通過下面代碼中g(shù)enerateLicense(Bitmap?singlepic)方法獲得,具體操作:
?????????*??????從圖片中截圖出(摳出)一個字符,然后處理得到二維的二進制矩陣,比如下面的字符1對應的二維矩陣
?????????*??????00000
?????????*??????00100
?????????*??????11100
?????????*??????00100
?????????*??????00100
?????????*??????00100
?????????*??????00100
?????????*??????00100
?????????*??????00100
?????????*??????11111
?????????*??????00000
?????????*??????00000
?????????*??????
?????????*?注意:【相同字符,比如1,不同字體,字號,不同縮放大小的圖片,獲得到的二位矩陣中0、1排列和數(shù)量都是不同的!
?????????*??????????故按照此方法來寫出匹配所有字的話,那字庫就大了。。。】
?????????*?
?????????*?
????????*/
????????public?FormLicense()
????????{
????????????InitializeComponent();
????????????buttonGenerate.Enabled?=?false;?????????//在pictureBox控件中無圖片時buttonGenerate按鈕不可用
????????????richTextBoxLicense.ReadOnly?=?true;?????//并且不可以在文本框中改動輸出后的字符
????????????this.AcceptButton?=?this.buttonOpen;????//回車鍵作用在打開按鈕上
????????}
????????#region?在用的字符對應黑白顏色二進制碼的字庫我的工具中只需要下面的幾個字符所有不是所有文字都能識別出來
????????static?string?stringByte0?=?“000000001100010010100001100001100001100001100001010010001100000000000000“;
????????static?char[]?char0?=?stringByte0.ToCharArray();
????????static?int?BinaryWidth0?=?5?BinaryHeight0?=?11;????//0的平面像素長寬(從0開始數(shù)起)
????????static?string?stringByte1?=?“000000010011100001000010000100001000010000100111110000000000“;
????????static?char[]?char1?=?stringByte1.ToCharArray();
????????static?int?BinaryWidth1?=?4?BinaryHeight1?=?11;????//1的平面像素長寬(從0開始數(shù)起)
????????static?string?stringByte2?=?“000000111010001100010000100010001000100010001111110000000000“;
????????static?char[]?char2?=?stringByte2.ToCharArray();
????????static?int?BinaryWidth2?=?4?BinaryHeight2?=?11;????//2的平面像素長寬(從0開始數(shù)起)
????????static?string?stringByte3?=?“000000111010001100010011000001000011000110001011100000000000“;
????????static?char[]?char3?=?stringByte3.ToCharArray();
????????static?int?BinaryWidth3?=?4?BinaryHeight3?=?11;????//3的平面像素長寬(從0開始數(shù)起)
????????static?string?stringByte4?=?“000010000010000110001010010010010010100010011111000010000111000000000000“;
????????static?char[]?char4?=?stringByte4.ToCharArray();
????????static?int?BinaryWidth4?=?5?BinaryHeight4?=?11;????//4的平面像素長寬(從0開始數(shù)起)
????????static?string?stringByte5?=?“000001111110000100001111010001000011000110001011100000000000“;
????????static?char[]?char5?=?stringByte5.ToCharArray();
????????static?int?BinaryWidth5?=?4?BinaryHeight5?=?11;????//5的平面像素長寬(從0開始數(shù)起)
????????static?string?stringByte6?=?“000000001111010001100000101110110001100001100001100001011110000000000000“;
????????static?char[]?char6?=?stringByte6.ToCharArray();
????????static?int?BinaryWidth6?=?5?BinaryHeight6?=?11;????//6的平
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????303??2021-01-06?16:08??iamge2text\.git\config
?????文件?????????73??2021-01-06?16:08??iamge2text\.git\desc
?????文件?????????23??2021-01-06?16:08??iamge2text\.git\HEAD
?????文件????????478??2021-01-06?16:08??iamge2text\.git\hooks\applypatch-msg.sample
?????文件????????896??2021-01-06?16:08??iamge2text\.git\hooks\commit-msg.sample
?????文件???????4655??2021-01-06?16:08??iamge2text\.git\hooks\fsmonitor-watchman.sample
?????文件????????189??2021-01-06?16:08??iamge2text\.git\hooks\post-update.sample
?????文件????????424??2021-01-06?16:08??iamge2text\.git\hooks\pre-applypatch.sample
?????文件???????1643??2021-01-06?16:08??iamge2text\.git\hooks\pre-commit.sample
?????文件????????416??2021-01-06?16:08??iamge2text\.git\hooks\pre-merge-commit.sample
?????文件???????1374??2021-01-06?16:08??iamge2text\.git\hooks\pre-push.sample
?????文件???????4898??2021-01-06?16:08??iamge2text\.git\hooks\pre-reba
?????文件????????544??2021-01-06?16:08??iamge2text\.git\hooks\pre-receive.sample
?????文件???????1492??2021-01-06?16:08??iamge2text\.git\hooks\prepare-commit-msg.sample
?????文件???????2783??2021-01-06?16:08??iamge2text\.git\hooks\push-to-checkout.sample
?????文件???????3650??2021-01-06?16:08??iamge2text\.git\hooks\update.sample
?????文件???????3430??2021-01-06?16:08??iamge2text\.git\index
?????文件????????240??2021-01-06?16:08??iamge2text\.git\info\exclude
?????文件????????191??2021-01-06?16:08??iamge2text\.git\logs\HEAD
?????文件????????191??2021-01-06?16:08??iamge2text\.git\logs\refs\heads\master
?????文件????????191??2021-01-06?16:08??iamge2text\.git\logs\refs\remotes\origin\HEAD
?????文件???????2164??2021-01-06?16:08??iamge2text\.git\ob
?????文件??????42839??2021-01-06?16:08??iamge2text\.git\ob
?????文件????????114??2021-01-06?16:08??iamge2text\.git\packed-refs
?????文件?????????41??2021-01-06?16:08??iamge2text\.git\refs\heads\master
?????文件?????????32??2021-01-06?16:08??iamge2text\.git\refs\remotes\origin\HEAD
?????文件??????25600??2021-01-06?16:08??iamge2text\Demo\iamge2text.exe
?????文件??????94902??2021-01-06?16:08??iamge2text\Demo\測試注冊碼圖片(圖片不能縮放識別的字母范圍已經(jīng)定死).bmp
?????文件????????418??2021-01-06?16:08??iamge2text\README.txt
?????文件??????25600??2021-01-06?16:08??iamge2text\源碼\iamge2text\iamge2text\bin\Debug\iamge2text.exe
............此處省略51個文件信息
- 上一篇:自定義水晶按鈕控件59079
- 下一篇:C# 五子棋(winform源碼)
評論
共有 條評論