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 SQLite3数据库操作类分享
Jun 10 Python
Flask-WTF表单的使用方法
Jul 12 Python
对于Python深浅拷贝的理解
Jul 29 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
python+selenium 点击单选框-radio的实现方法
Sep 03 Python
Python csv文件记录流程代码解析
Jul 16 Python
python从Oracle读取数据生成图表
Oct 14 Python
python IP地址转整数
Nov 20 Python
Python命令行参数定义及需要注意的地方
Nov 30 Python
python FTP编程基础入门
Feb 27 Python
对PyTorch中inplace字段的全面理解
May 22 Python
Python编写nmap扫描工具
Jul 21 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
python实现跨文件全局变量的方法
2014/07/07 Python
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
在Python中使用Neo4j的方法
2019/03/14 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
日语专业推荐信
2013/11/12 职场文书
中学生团员自我评价分享
2013/12/07 职场文书
运动会入场词100字
2014/02/06 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
2015年新农合工作总结
2015/03/30 职场文书
费用申请报告范文
2015/05/15 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
教师节随笔
2015/08/15 职场文书
Mybatis是这样防止sql注入的
2021/12/06 Java/Android
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python