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发送arp欺骗攻击代码分析
Jan 16 Python
DJANGO-ALLAUTH社交用户系统的安装配置
Nov 18 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
Python中的rfind()方法使用详解
May 19 Python
Django如何实现内容缓存示例详解
Sep 24 Python
python基础学习之如何对元组各个元素进行命名详解
Jul 12 Python
python学生管理系统
Jan 30 Python
详解python播放音频的三种方法
Sep 23 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
python爬虫--selenium模块
Mar 31 Python
Python下载商品数据并连接数据库且保存数据
Mar 31 Python
使用python生成大量数据写入es数据库并查询操作(2)
Sep 23 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
使用PHP制作新闻系统的思路
2006/10/09 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
Python自动重试HTTP连接装饰器
2015/04/28 Python
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
python 实现UTC时间加减的方法
2018/12/31 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
python占位符输入方式实例
2019/05/27 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
Keras load_model 导入错误的解决方式
2020/06/09 Python
pytorch简介
2020/11/11 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
合伙协议书范本
2014/04/21 职场文书
风之谷观后感
2015/06/11 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript