博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
验证码识别(python)
阅读量:6306 次
发布时间:2019-06-22

本文共 2265 字,大约阅读时间需要 7 分钟。

参考:

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
]

有时间 在学习下 匹配。

本文转自博客园刘凯毅的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
Spring.Net+WCF实现分布式事务
查看>>
在Linux上高效开发的7个建议
查看>>
java数据结构 - 数组使用的代码
查看>>
个人简历-项目经验
查看>>
swoole异步任务task处理慢请求简单实例
查看>>
DHCP
查看>>
oracle数据泵导入分区表统计信息报错(四)
查看>>
spring技术内幕读书笔记之IoC容器的学习
查看>>
细说多线程(五) —— CLR线程池的I/O线程
查看>>
JavaScript instanceof和typeof的区别
查看>>
Hadoop文件系统详解-----(一)
查看>>
《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(8)--- 主动器...
查看>>
状态码
查看>>
我的友情链接
查看>>
用sqlplus远程连接oracle命令
查看>>
多年一直想完善的自由行政审批流程组件【2002年PHP,2008年.NET,2010年完善数据设计、代码实现】...
查看>>
自动生成四则运算题目
查看>>
【翻译】使用新的Sencha Cmd 4命令app watch
查看>>
【前台】【单页跳转】整个项目实现单页面跳转,抛弃iframe
查看>>
因为你是前端程序员!
查看>>