首页 > 编程 > Python > 正文

python3 实现验证码图片切割的方法

2020-01-04 13:54:20
字体:
来源:转载
供稿:网友

切割前图片

python3,验证码,图片,切割

切割后四个图片

python3,验证码,图片,切割

代码

#coding:utf8import osfrom PIL import Image,ImageDraw,ImageFileimport numpyimport pytesseractimport cv2import imagehashimport collectionsclass pictureIdenti: #rownum:切割行数;colnum:切割列数;dstpath:图片文件路径;img_name:要切割的图片文件 def splitimage(self, rownum=1, colnum=4, dstpath="D:/work/python36_crawl/Veriycode",     img_name="D:/work/python36_crawl/Veriycode/mode_5246.png",):  img = Image.open(img_name)  w, h = img.size  if rownum <= h and colnum <= w:   print('Original image info: %sx%s, %s, %s' % (w, h, img.format, img.mode))   print('开始处理图片切割, 请稍候...')   s = os.path.split(img_name)   if dstpath == '':    dstpath = s[0]   fn = s[1].split('.')   basename = fn[0]   ext = fn[-1]   num = 1   rowheight = h // rownum   colwidth = w // colnum   file_list = []   for r in range(rownum):    index = 0    for c in range(colnum):     # (left, upper, right, lower)     # box = (c * colwidth, r * rowheight, (c + 1) * colwidth, (r + 1) * rowheight)     if index<1:      colwid = colwidth+6     elif index<2:      colwid = colwidth + 1     elif index < 3:      colwid = colwidth     box = (c * colwid, r * rowheight, (c + 1) * colwid, (r + 1) * rowheight)     newfile = os.path.join(dstpath, basename + '_' + str(num) + '.' + ext)     file_list.append(newfile)     img.crop(box).save(os.path.join(dstpath, basename + '_' + str(num) + '.' + ext), ext)     num = num + 1     index+=1   for f in file_list:    print(f)   print('图片切割完毕,共生成 %s 张小图片。' % num)

以上这篇python3 实现验证码图片切割的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表