欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

中文点选验证码之自动识别

来源:本站整理 作者:佚名 时间:2018-09-12 TAG: 我要投稿
         default:
             break;
    }
    $return =  array    ( $x,  $y);
    return$return ;
}
$ap_imagePath  =  'ap_bg.png' ;
$mp_imagePath  =  'mp_bg.png' ;
$ap_imageName  =  "ap_" .    time (). ".png" ;   
$mp_imageName  =  "mp_" .    time (). ".png" ;   
$ap_word  =  array (    ' 请 ' ,    ' 依 ' ,    ' 次 ' ,    ' 点 ' ,    ' 击 ' ,    ' 图 ' ,    ' 中 ' ,    ' 的 ' ,    ' 猎 ' ,     ' 户 ' ,    ' 室 ' )                                                                                                                                                                                                                                                                                                                                                                                                                                                ;
$mp_word  =  array (    ' 猎 ' ,     ' 户 ' ,     ' 实 ' ,    ' 验 ' ,    ' 室 ' );
createImage ( $ap_word ,    $ap_imagePath , 1 ,    $ap_imageName );
createImage ( $mp_word ,    $mp_imagePath , 0 ,    $mp_imageName );
?>
运行后生成这样两张图片。
ap_XXXXX.png

mp_XXXXX.png

ap_XXXXX.png是说明需要点击的文字,mp_XXXXX.png是需要点击的图片。
0×02  验证码识别
对于这种简单的点选验证码,可以有两种很容易的识别方式(机器学习算麻烦的,这里就不列出了。嗯,对,我也不会)。一种是opencv的图像模板匹配,另外一种是OCR识别。
1. opencv的图像模板匹配
第一种方式,使用opencv的图像模板匹配。模板匹配是一种在较大图像中搜索和查找模板图像位置的方法,opencv2和opencv3中提供了一个专门用于模板匹配的函数matchTemplate()。它是在输入图像上滑动模板图像(如在2D卷积中),并比较模板图像下的输入图像的模板和补丁。在OpenCV中实现了六种比较方法(这里用到的是cv2.TM_CCOEFF_NORMED),它返回一个灰度图像,其中每个像素表示该像素的邻域与模板匹配的程度。

上一页  [1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载