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实现PS图像调整之对比度调整功能示例
Jan 26 Python
Python实现判断给定列表是否有重复元素的方法
Apr 11 Python
Python对象属性自动更新操作示例
Jun 15 Python
python实现移位加密和解密
Mar 22 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
解决Python3 抓取微信账单信息问题
Jul 19 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
Python使用贪婪算法解决问题
Oct 22 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
Python解析多帧dicom数据详解
Jan 13 Python
Django之全局使用request.user.username的实例详解
May 14 Python
python输出结果刷新及进度条的实现操作
Jul 13 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
用Socket发送电子邮件
2006/10/09 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
Vue基础配置讲解
2019/11/29 Javascript
element中的$confirm的使用
2020/04/26 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
pygame实现打字游戏
2021/02/19 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
keras打印loss对权重的导数方式
2020/06/10 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
remote接口和home接口主要作用
2013/05/15 面试题
前台文员职责范本
2014/03/07 职场文书
大学学风建设方案
2014/05/04 职场文书
学习方法演讲稿
2014/05/10 职场文书
先进事迹材料范文
2014/12/29 职场文书
教师节主题班会教案
2015/08/17 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
Nginx配置https的实现
2021/11/27 Servers