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


Posted in Python onDecember 07, 2018

切割前图片

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

切割后四个图片

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

代码

#coding:utf8
import os
from PIL import Image,ImageDraw,ImageFile
import numpy
import pytesseract
import cv2
import imagehash
import collections
class 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 实现验证码图片切割的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python登录并获取CSDN博客所有文章列表代码实例
Dec 28 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
Python 使用PIL numpy 实现拼接图片的示例
May 08 Python
python中多层嵌套列表的拆分方法
Jul 02 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
Python日志无延迟实时写入的示例
Jul 11 Python
django xadmin 管理器常用显示设置方式
Mar 11 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
Scrapy中如何向Spider传入参数的方法实现
Sep 28 Python
python爬虫框架feapde的使用简介
Apr 20 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 #Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 #Python
浅析python3字符串格式化format()函数的简单用法
Dec 07 #Python
Python实现的批量修改文件后缀名操作示例
Dec 07 #Python
Python实现随机创建电话号码的方法示例
Dec 07 #Python
selenium3+python3环境搭建教程图解
Dec 07 #Python
python对视频画框标记后保存的方法
Dec 07 #Python
You might like
使用数据库保存session的方法
2006/10/09 PHP
php 安全过滤函数代码
2011/05/07 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
10分钟学会写Jquery插件实例教程
2014/09/06 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
JS在if中的强制类型转换方式
2018/07/15 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
python根据日期返回星期几的方法
2015/07/06 Python
详解Python中的Cookie模块使用
2015/07/06 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
python小程序实现刷票功能详解
2019/07/17 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
如何写好升职自荐信
2014/01/06 职场文书
工作分析计划书
2014/04/30 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
小学教研工作总结2015
2015/05/13 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
pycharm代码删除恢复的方法
2021/06/26 Python
Golang 实现 WebSockets 之创建 WebSockets
2022/04/24 Golang