验证码识别技术研究(2)

 1 /// <summary>
 2         /// 获取主体矩形边界坐标,顺时针
 3         /// </summary>
 4         /// <param name="bmpTg">目标图片</param>
 5         /// <param name="bmpMT">模板图片</param>
 6         /// <returns></returns>
 7         private static Point[] GetTarget(Bitmap bmpTg, Bitmap bmpMT)
 8         {
 9             //主体矩形边界坐标,顺时针
10             Point[] points ={
11                 new Point(0,0),
12                 new Point(0,0),
13                 new Point(0,0),
14                 new Point(0,0),
15                            };
16 
17             int tmpRGB = 0;
18             for (int tgx = 0; tgx < bmpTg.Width - bmpMT.Width; tgx++)
19             {
20                 for (int tgy = 0; tgy < bmpTg.Height - bmpMT.Height; tgy++)
21                 {
22                     bool faild = false;
23                     for (int mtx = 0; mtx < bmpMT.Width; mtx++)
24                     {
25                         for (int mty = 0; mty < bmpMT.Height; mty++)
26                         {
27                             if (bmpMT.GetPixel(mtx, mty).B > 150)
28                                 continue;
29                             tmpRGB = bmpTg.GetPixel(tgx + mtx, tgy + mty).B - bmpMT.GetPixel(mtx, mty).B;
30                             tmpRGB = tmpRGB > 0 ? tmpRGB : tmpRGB * (-1);
31                             if (tmpRGB > 150)
32                             {
33                                 faild = true;
34                                 continue;
35                             }
36                         }
37                     }
38                     if (faild)
39                     {
40                         continue;
41                     }
42                     points[0].X = tgx;
43                     points[0].Y = tgy;
44                     points[1].X = tgx + bmpMT.Width;
45                     points[1].Y = tgy;
46                     points[2].X = tgx;
47                     points[2].Y = tgy + bmpMT.Height;
48                     points[3].X = tgx + bmpMT.Width;
49                     points[3].Y = tgy + bmpMT.Height;
50                     return points;
51                 }
52             }
53             return points;
54         }

 

转载于:https://www.cnblogs.com/mahatmasmile/archive/2013/03/07/2948644.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值