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 相关文章推荐
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
Python实现的概率分布运算操作示例
Aug 14 Python
python批量实现Word文件转换为PDF文件
Mar 15 Python
Python socket实现简单聊天室
Apr 01 Python
python 正确保留多位小数的实例
Jul 16 Python
用python实现k近邻算法的示例代码
Sep 06 Python
django session完成状态保持的方法
Nov 27 Python
python学生管理系统
Jan 30 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
关于Python 常用获取元素 Driver 总结
Nov 24 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 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
笑谈配置,使用Smarty技术
2007/01/04 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
详解webpack+angular2开发环境搭建
2017/06/28 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
浅谈Python 的枚举 Enum
2017/06/12 Python
Python基于多线程操作数据库相关问题分析
2018/07/11 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
python xpath获取页面注释的方法
2019/01/14 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
python使用Word2Vec进行情感分析解析
2020/07/31 Python
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
机关财务管理制度
2014/01/17 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
节水倡议书
2015/01/19 职场文书
公务员个人年终总结
2015/02/12 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
会议主持人开场白台词
2015/05/28 职场文书
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技
Oracle使用别名的好处
2022/04/19 Oracle
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技