重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

包含pix函数python的词条

python鼠标单击不干扰暂停

是的,不干扰,一次运行程序时,会产生一个keepWorking.txt 文件,可以修改这个文件中的变量。如果检测到已经存在这个文件,则读取文件中的配置。

成都创新互联公司2013年至今,是专业互联网技术服务公司,拥有项目网站设计制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元三门做网站,已为上家服务,为三门各地企业和个人服务,联系电话:18980820575

等待delay 秒后,让鼠标水平跳动pix 个像素,再等待delay 秒后,再跳回去。

到达maxDelay 秒时,程序退出,不再模拟操作鼠标。

click =1 表示鼠标移动后,是否模拟左击操作。设置为0可能起不到防止休眠的作用。

python 用PIL打开TIFF格式图片无法转换为灰度图是为什么?一直报错,有代码注释,和错误截图

It's either a bug or unimplemented in PIL/Pillow. Here is a workaround:

import Image

image = Image.open("Fredy1_002.tif")

image.mode = 'I'

image.point(lambda i:i*(1./256)).convert('L').save('my.jpeg')

'求助'Python怎么判断图片是否为灰度图

这里判断是否为灰度图的标准是:每一个像素所对应的R、G、B的值是否相等。

def is_color_image(url):

im=Image.open(url)

pix=im.convert('RGB')

width=im.size[0]

height=im.size[1]

oimage_color_type="Grey Image"

is_color=[]

for x in range(width):

for y in range(height):

r,g,b=pix.getpixel((x,y))

r=int(r)

g=int(g)

b=int(b)

if (r==g) and (g==b):

pass

else:

oimage_color_type='Color Image'

return oimage_color_type

如何用python分别提取出某个像素的rgb值并写入一个一行三列的数组中。

可以使用 Python Image Library 做,load() 函数会返回一个对象,这个对象我们可以把它当作一个二维数组对待,而数组中存放的就是点的 RGB 值,可以很容易地访问到任何像素点的 RGB 值:

from PIL import Image

# 可以支持很多种图片格式.

im = Image.open("your_picture.jpg") 

pix = im.load()

# 获得图片的尺度,可以用于迭代

print im.size 

# 获得某个像素点的 RGB 值,像素点坐标由 [x, y] 指定

print pix[x,y] 

# 设置 [x, y] 点的 RGB 的值为 value 

pix[x,y] = value

python怎么用PIL模块处理BMP图像 二值化

遍历图片对象?可是怎么个遍历法呢?Pillow 提供了一个 .load() 方法,用来处理像素。图片嘛,当然是二维的,有宽和高的。

pixels = image.load()

for x in ramge(image.width):

for y in range(image.height):

pixsels[x, y] = 255 if pixsels[x, y] 125 else 0

当然了,只是最简单的二值化的话,直接 image.convert('1') 就可以了 :-)

如何利用Python做简单的验证码识别

最近在折腾验证码识别。最终的脚本的识别率在92%左右,9000张验证码大概能识别出八千三四百张左右。好吧,其实是验证码太简单。下面就是要识别的验证码。

我主要用的是Python中的PIL库。

首先进行二值化处理。由于图片中的噪点颜色比较浅,所以可以设定一个阈值直接过滤掉。这里我设置的阈值是150,像素大于150的赋值为1,小于的赋为0.

def set_table(a):

table = []

for i in range(256):        if i a:

table.append(0)        else:

table.append(1)    return table

img = Image.open("D:/python/单个字体/A"+str(i)+".jpg")

pix = img.load()#将图片进行灰度化处理img1 = img.convert('L')#阈值为150,参数为1,将图片进行二值化处理img2 = img1.point(set_table(150),'1')  1234567891011121314151617

处理后的图片如下。

阈值不同产生的不同效果:

接下来对图片进行分割。遍历图片中所有像素点,计算每一列像素为0的点的个数(jd)。对于相邻两列,若其中一列jd=0,而另一列jd!=0,则可以认为这一列是验证码中字符边界,由此对验证码进行分割。这样分割能达到比较好的效果,分割后得到的字符图片几乎能与模板完全相同。

(Width,Height) = img2.size

pix2 = img2.load()

x0 = []

y0 = []for x in range(1,Width):

jd = 0

# print x

for y in range(1,Height):        # print y

if pix2[x,y] == 0:

jd+=1

y0.append(jd)    if jd 0:

x0.append(x)#分别对各个字符边界进行判断,这里只举出一个        for a in range(1,Width):    if (y0[a] != 0)(y0[a+1] != 0):

sta1 = a+1

break123456789101112131415161718192021

分割完成后,对于识别,目前有几种方法。可以遍历图片的每一个像素点,获取像素值,得到一个字符串,将该字符串与模板的字符串进行比较,计算汉明距离或者编辑距离(即两个字符串的差异度),可用Python-Levenshtein库来实现。

我采用的是比较特征向量来进行识别的。首先设定了4个竖直特征向量,分别计算第0、2、4、6列每一列像素值为0的点的个数,与模板进行比较,若小于阈值则认为该字符与模板相同。为了提高识别率,如果通过竖直特征向量未能识别成功,引入水平特征向量继续识别,原理与竖直特征向量相同。

另外,还可以通过局部特征进行识别。这对于加入了旋转干扰的验证码有很好效果。由于我写的脚本识别率已经达到了要求,所以并没有用到这个。

最后的结果是这样的:

最终在模板库只有25条的情况下,识别率在92%左右(总共测试了一万六千张验证码)。好吧,只能说验证码太简单。。

以上。


分享名称:包含pix函数python的词条
文章转载:http://cqcxhl.com/article/hgecsd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP