python图像处理之二值去噪

好久没有写什么文章了,最近一直忙于学习各种知识,没有一个整体的知识体系也就没有贸然写文章,其实我想慢慢提高文章质量,话不多说,今天说说我验证码识别的第一步处理,也就是验证码的二值化和去噪点

我们先来看看一张简单的验证码,这张也是我一直在使用的一个例子(懒得找。。。)

2

下面我使用的python-image库简称PIL库,下面一个算法由一个网友提供:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from PIL import Image

img = Image.open('tmp.jpg') # 读入图片
img = img.convert("RGBA")

pixdata = img.load()

#二值化

for y in xrange(img.size[1]):
for x in xrange(img.size[0]):
if pixdata[x, y][0] < 90:
pixdata[x, y] = (0, 0, 0, 255)

for y in xrange(img.size[1]):
for x in xrange(img.size[0]):
if pixdata[x, y][1] < 136:
pixdata[x, y] = (0, 0, 0, 255)

for y in xrange(img.size[1]):
for x in xrange(img.size[0]):
if pixdata[x, y][2] > 0:
pixdata[x, y] = (255, 255, 255, 255)

img.save("input-black.gif", "GIF")

#放大图像 方便识别
im_orig = Image.open('input-black.gif')
big = im_orig.resize((1000, 500), Image.NEAREST)



2

效果还不错

PS:最近烦恼软件界面的设计