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 28 Python
wxPython事件驱动实例详解
Sep 28 Python
Python正则表达式使用经典实例
Jun 21 Python
Python基础之getpass模块详细介绍
Aug 10 Python
Django学习教程之静态文件的调用详解
May 08 Python
详解python中的模块及包导入
Aug 30 Python
python 生成器和迭代器的原理解析
Oct 12 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
jupyter notebook参数化运行python方式
Apr 10 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
Python用Jira库来操作Jira
Dec 28 Python
基于python+selenium自动健康打卡的实现代码
Jan 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
php url路由入门实例
2014/04/23 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python中enumerate函数用法实例分析
2015/05/20 Python
python删除列表内容
2015/08/04 Python
使用Python操作MySQL的一些基本方法
2015/08/16 Python
浅谈五大Python Web框架
2017/03/20 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
python三引号输出方法
2019/02/27 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
创联软件面试题笔试题
2012/10/07 面试题
《童年的发现》教学反思
2014/02/14 职场文书
创文明城市标语
2014/06/16 职场文书
幼师求职信
2014/06/23 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
优秀员工自荐书
2015/03/06 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
新手初学Java网络编程
2021/07/07 Java/Android