• 大小: 0.12M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-05-02
  • 语言: C#
  • 标签: 验证码  识别  验证  

资源简介

一个图片识别小工具,原先主要是识别以前公司的软件注册码截图里的数字和字母 (每次要一个一个框复制出来粘贴到注册器里,很麻烦!), 因为注册码出现的字母和数字基本就那几个,所以识别库的范围设定的比较少。 原理和算法在代码中做了详细说明。

资源截图

代码片段和文件信息

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
    {

        /*
         * 开发思路:图片灰度处理,二进制,然后和图片中的字二进制库精确对比
         * 
         * 获取字库:通过下面代码中generateLicense(Bitmap singlepic)方法获得,具体操作:
         *      从图片中截图出(抠出)一个字符,然后处理得到二维的二进制矩阵,比如下面的字符1对应的二维矩阵
         *      00000
         *      00100
         *      11100
         *      00100
         *      00100
         *      00100
         *      00100
         *      00100
         *      00100
         *      11111
         *      00000
         *      00000
         *      
         * 注意:【相同字符,比如1,不同字体,字号,不同缩放大小的图片,获得到的二位矩阵中0、1排列和数量都是不同的!
         *          故按照此方法来写出匹配所有字的话,那字库就大了。。。】
         * 
         * 
        */
        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开始数起)

        static string stringByte1 = “000000010011100001000010000100001000010000100111110000000000“;
        static char[] char1 = stringByte1.ToCharArray();
        static int BinaryWidth1 = 4 BinaryHeight1 = 11;    //1的平面像素长宽(从0开始数起)

        static string stringByte2 = “000000111010001100010000100010001000100010001111110000000000“;
        static char[] char2 = stringByte2.ToCharArray();
        static int BinaryWidth2 = 4 BinaryHeight2 = 11;    //2的平面像素长宽(从0开始数起)

        static string stringByte3 = “000000111010001100010011000001000011000110001011100000000000“;
        static char[] char3 = stringByte3.ToCharArray();
        static int BinaryWidth3 = 4 BinaryHeight3 = 11;    //3的平面像素长宽(从0开始数起)

        static string stringByte4 = “000010000010000110001010010010010010100010011111000010000111000000000000“;
        static char[] char4 = stringByte4.ToCharArray();
        static int BinaryWidth4 = 5 BinaryHeight4 = 11;    //4的平面像素长宽(从0开始数起)

        static string stringByte5 = “000001111110000100001111010001000011000110001011100000000000“;
        static char[] char5 = stringByte5.ToCharArray();
        static int BinaryWidth5 = 4 BinaryHeight5 = 11;    //5的平面像素长宽(从0开始数起)

        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\description

     文件         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-rebase.sample

     文件        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\objects\pack\pack-5ac0f79baba7489ab2d382397b9ceb52d6ebcf8d.idx

     文件      42839  2021-01-06 16:08  iamge2text\.git\objects\pack\pack-5ac0f79baba7489ab2d382397b9ceb52d6ebcf8d.pack

     文件        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\测试注册码图片(图片不能缩放识别的字母范围已经定死).bmp

     文件        418  2021-01-06 16:08  iamge2text\README.txt

     文件      25600  2021-01-06 16:08  iamge2text\源码\iamge2text\iamge2text\bin\Debug\iamge2text.exe

............此处省略51个文件信息

评论

共有 条评论