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常用内置函数总结
Feb 08 Python
python实现二分查找算法
Sep 21 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
Jun 26 Python
python2与python3共存问题的解决方法
Sep 18 Python
Python实现删除排序数组中重复项的两种方法示例
Jan 31 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 Python
python selenium登录豆瓣网过程解析
Aug 10 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 Python
Python之Sklearn使用入门教程
Feb 19 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 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程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
Swoole 5将移除自动添加Event::wait()特性详解
2019/07/10 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
js给selected添加options的方法
2015/05/06 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
vue的for循环使用方法
2019/02/12 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
浅析Python装饰器以及装饰器模式
2018/05/28 Python
python处理csv中的空值方法
2018/06/22 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
python判断是空的实例分享
2020/07/06 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
访谈节目策划方案
2014/05/15 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS