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中反射用法实例
Mar 27 Python
详解Python的Django框架中的templates设置
May 11 Python
Python实现计算最小编辑距离
Mar 17 Python
Python错误: SyntaxError: Non-ASCII character解决办法
Jun 08 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 Python
解决python有时候import不了当前的包问题
Aug 28 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
python-sys.stdout作为默认函数参数的实现
Feb 21 Python
Python3 requests模块如何模仿浏览器及代理
Jun 15 Python
python中把元组转换为namedtuple方法
Dec 09 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中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
JavaScript 变量基础知识
2009/11/07 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
python3实现磁盘空间监控
2018/06/21 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
Python实现GIF图倒放
2020/07/16 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
财务会计专业毕业生自荐信
2013/10/02 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
机修工工作职责
2014/02/21 职场文书
新年主持词
2014/03/27 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技