验证码识别(python)

简介:
参考:
http://blog.csdn.net/lanphaday/archive/2007/10/28/1852726.aspx
http://www.zhuaxia.com/item/852269537

java
package  Main;

import  java.awt.image.BufferedImage;
import  java.net.URL;

import  javax.imageio.ImageIO;

public   class  Test {

    
public   static   void  main(String[] args)  throws  Exception {
        BufferedImage img 
=  ImageIO.read( new  URL( " file:/C:/src/python/gve/22.jpeg " ));
        
int  imgWith  =  img.getWidth();
        
int  imgHeight  =  img.getHeight();
        
int  bgint  =  img.getRGB( 0 0 );
        
for  ( int  y  =   0 ; y  <  imgHeight; y ++ ) {
            System.out.println();
            
for  ( int  x  =   0 ; x  <  imgWith; x ++ ) {
                System.out.print(getBit(img, x, y,bgint));
            }
        }
    }

    
private   static   char  getBit(BufferedImage img,  int  x,  int  y, int  bgint) {
        
int  intCurtColor;
        intCurtColor 
=  img.getRGB(x, y);
        
return  (intCurtColor  ==  bgint)  ?   ' 0 '  :  '   ' ;
    }
}

               000     000 0        0 00 0 0     0 0    
                        0 000      00 0 0 0      0  0     
             00 00      0  0 00       0    00   0 00 0    
           0000   0 0    0  0 0            0   00    0 0   
            00    0           0             0  00      0   
            00    0       00 0           0     00     0    
           0 0     0      0 0            0       00   0    
            00    00    0  0  0          0         0 00 0   
           0 0              0 00        0         0 0 0    
           0       00        0         0             0 00   
            0 0   00         0 0                      00   
             00   0           0      00 0        0  0 0     
               00  0   0 0  00       0 0          0 0 0    
               0 0      00 0 0        00          0000                                                            
python
# encoding=utf-8
import  Image,ImageEnhance,ImageFilter
import  sys

image_name 
=   " ./22.jpeg "

#去处 干扰点
im  =  Image.open(image_name)
im 
=  im.filter(ImageFilter.MedianFilter())
enhancer 
=  ImageEnhance.Contrast(im)
im 
=  enhancer.enhance( 2 )
im 
=  im.convert( ' 1 ' )

# im.show() #测试查看

=   12        # 启始 切割点 x
=   2         # 启始 切割点 y

=   10        # 切割 宽 +y
=   15        # 切割 长 +x

im_new 
=  []
for  i  in  range( 4 ):  # 验证码切割
    im1  =  im.crop((s + w * i + i * 2 ,t,s + w * (i + 1 ) + i * 2 ,h))
    im_new.append(im1)

# im_new[0].show()#测试查看

xsize, ysize 
=  im_new[0].size
gd 
=  []
for  i  in  range(ysize):
    tmp
= []
    
for  j  in  range(xsize):
        
if ( im_new[0].getpixel((j,i))  ==   255  ):
            tmp.append(
1 )
        
else :
            tmp.append(0)
    gd.append(tmp)

#看效果
for  i  in  range(ysize):
    
print  gd[i]
比如 "0" 
[ 1, 1,  0, 0, 0, 0,  1, 1, 1, 1 ]
[0, 0, 0, 0, 0, 0, 0,  1, 1, 1 ]
[0, 0, 0,  1, 1,  0, 0, 0, 0,  1 ]
[0, 0,  1, 1, 1, 1,  0, 0, 0,  1 ]
[0, 0,  1, 1, 1, 1,  0, 0, 0,  1 ]
[0, 0,  1, 1, 1, 1,  0, 0, 0,  1 ]
[0, 0,  1, 1, 1, 1,  0, 0, 0,  1 ]
[0, 0,  1, 1, 1, 1,  0, 0, 0,  1 ]
[0, 0,  1, 1, 1, 1,  0, 0, 0,  1 ]
[0, 0, 0,  1, 1, 1,  0, 0, 0,  1 ]
[0, 0, 0,  1, 1,  0, 0, 0, 0,  1 ]
[ 1 , 0, 0, 0, 0, 0, 0, 0,  1, 1 ]
[ 1, 1,  0, 0, 0, 0, 0,  1, 1, 1 ]

有时间 在学习下 匹配。

本文转自博客园刘凯毅的博客,原文链接:验证码识别(python),如需转载请自行联系原博主。

目录
相关文章
|
6月前
|
数据采集 机器学习/深度学习 安全
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
402 0
|
数据采集 文字识别 测试技术
Python3,这个库,真的是图片类型验证码的克星,真香。
Python3,这个库,真的是图片类型验证码的克星,真香。
100 0
|
1月前
|
数据采集 自然语言处理 API
Python反爬案例——验证码的识别
Python反爬案例——验证码的识别
|
1月前
|
数据采集 自然语言处理 Python
用 Python 生成并识别图片验证码
用 Python 生成并识别图片验证码
34 1
|
1月前
|
数据采集 消息中间件 API
Python爬虫验证码识别——手机验证码的自动化处理
Python爬虫验证码识别——手机验证码的自动化处理
|
1月前
|
文字识别 开发者 iOS开发
Python反爬机制-验证码(一)
Python反爬机制-验证码(一)
|
1月前
|
人工智能 文字识别 API
Python反爬机制-验证码(二)
Python反爬机制-验证码(二)
|
4月前
|
机器人 计算机视觉 Python
使用Python生成图片验证码
本文介绍了如何使用Python的PIL库生成简单的验证码图片和文本。通过实现CaptchaGenerator类,我们可以轻松生成包含随机字符和干扰元素的验证码。这种技术可以应用于Web应用程序中,用于增强用户验证的安全性和可靠性。
|
5月前
|
存储 JavaScript 前端开发
Python Django下的实现注册验证码
摘要: 使用Python生成随机验证码图像,包括干扰线和噪点,保存到静态文件夹,并将验证码文本存储到数据库。数据库表包含ID、验证码图片路径和验证码文本。JavaScript函数`getRandomInt`生成1到300的随机数,用于请求对应数据库条目的验证码和图片。XMLHttpRequest发送POST请求到服务器,视图函数返回指定ID的验证码图片路径,实现验证码的动态刷新。
|
6月前
|
人工智能 开发工具 Python
2024年利用Python突破验证码限制,2024年最新Python高级开发工程师面试题
2024年利用Python突破验证码限制,2024年最新Python高级开发工程师面试题
2024年利用Python突破验证码限制,2024年最新Python高级开发工程师面试题
下一篇
无影云桌面