python3 實現(xiàn)驗證碼圖片切割的方法
更新時間:2018年12月07日 10:45:37 作者:shaomine
今天小編就為大家分享一篇python3 實現(xiàn)驗證碼圖片切割的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
切割前圖片
切割后四個圖片
代碼
#coding:utf8 import os from PIL import Image,ImageDraw,ImageFile import numpy import pytesseract import cv2 import imagehash import collections class pictureIdenti: #rownum:切割行數(shù);colnum:切割列數(shù);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 實現(xiàn)驗證碼圖片切割的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:

windows10下安裝TensorFlow Object Detection API的步驟
這篇文章主要介紹了windows10下安裝TensorFlow Object Detection API的步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
2019-06-06 
Python將string轉(zhuǎn)換到float的實例方法
在本篇文章中小編給大家分享的是關于Python將string轉(zhuǎn)換到float的實例方法以及相關知識點,需要的朋友們參考下。
2019-07-07 
python list等分并從等分的子集中隨機選取一個數(shù)
這篇文章主要介紹了python list等分并從等分的子集中隨機選取一個數(shù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
2020-11-11