Python 处理图片像素点的实例

yipeiwu_com6年前Python基础

###在做爬虫的时候有时需要识别验证码,但是验证码一般都有干扰物,这时需要对验证码进行预处理,效果如下:

Python 处理图片像素点

from PIL import Image
import itertools
img = Image.open('C:/img.jpg').convert('L') #打开图片,convert图像类型有L,RGBA

# 转化为黑白图
def blackWrite(img):
 blackXY = []

 # 遍历像素点
 for x in range(img.size[0]):
  for y in range(img.size[1]):
   print img.getpixel((x,y))
   if img.getpixel((x,y))<128:
    img.putpixel((x,y),0) # 置为黑点
    blackXY.append((x,y))
   else:
    img.putpixel((x,y),255) # 置为白点
 return blackXY


# 去除干扰点
def clrImg(img,pointArr):
 # 获取周围黑点的个数
 def getN(p):
  count = 0
  x = [p[0]-1,p[0],p[0]+1]
  y = [p[1]-1,p[1],p[1]+1]
  for i in itertools.product(x,y): # 笛卡尔积
   try:
    if img.getpixel(i) == 0:
     count +=1
   except:
    print 'out of'
    continue
  print count
  return count

 for p in pointArr:
  if getN(p)<5: # 周围黑点个数 <5 的黑点认为是干扰点,置为白点
   img.putpixel(p,255)
   
pointArr = blackWrite(img)
clrImg(img,pointArr)
img.save("C:/img_1.jpg")

以上这篇Python 处理图片像素点的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例

Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例

本文实例讲述了Python2.7基于笛卡尔积算法实现N个数组的排列组合运算。分享给大家供大家参考,具体如下: 说明:本人前段时间遇到的求n个数组的所有排列组合的问题,发现笛卡尔积算法可以...

python fabric实现远程部署

python fabric实现远程部署 需求描述 在多人协同开发项目的过程中,几乎每天我们都要提交代码到git服务器,然后部署到测试服务器,每天都在敲那重复的几行命令,实在是无趣。怎么办...

python中class的定义及使用教程

类的定义 class classname[(父类名)]: – 成员函数及成员变量 _ init _ 构造函数:初始化对象 _ del_ 析构函数:销毁对象 定义类的成员函数时,必须默认一...

浅谈pandas筛选出表中满足另一个表所有条件的数据方法

浅谈pandas筛选出表中满足另一个表所有条件的数据方法

今天记录一下pandas筛选出一个表中满足另一个表中所有条件的数据。例如: list1 结构:名字,ID,颜色,数量,类型。 list1 = [['a',1,255,100,'03'],...

浅谈Python里面小数点精度的控制

要求较小的精度 round()内置方法 这个是使用最多的,刚看了round()的使用解释,也不是很容易懂。round()不是简单的四舍五入的处理方式。 For the built-in...