最近發現一個新庫,試用一下發現非常實用,特意今天分享給大家。
該庫名也是非常有趣 —— ddddocr(諧音帶帶弟弟OCR)
環境要求:
python >= 3.8 Windows/Linux/Macox..
可以通過以下命令安裝
pip install ddddocr
參數說明:
測試圖片
測試代碼
import ddddocr ocr = ddddocr.DdddOcr() with open('1.jpg', 'rb') as f: img_bytes = f.read() res = ocr.classification(img_bytes) print(res)
自寫驗證碼
只是會破解不行我們這次來個徹底的,上手做一個。原理很簡單就是簡單的隨機函數和PIL
庫的使用
from PIL import Image,ImageDraw,ImageFont import random def getRandomColor(): r = random.randint(0, 255) g = random.randint(0, 255) b = random.randint(0, 255) return (r,g,b) def getRandomStr(): num_random = str(random.randint(1,9)) random_upper_alpha = chr(random.randint(65,90)) random_char = random.choice([num_random,random_upper_alpha]) return random_char image = Image.new('RGB',(120,40),(255,255,255)) draw = ImageDraw.Draw(image) font = ImageFont.truetype(r'K:\msyh.ttc',size=24) for i in range(4): draw.text((10+i*30,10),getRandomStr(),getRandomColor(),font=font) width = 120 height = 40 for i in range(5): x1 = random.randint(0,width) x2 = random.randint(0,width) y1 = random.randint(0,height) y2 = random.randint(0,height) draw.line((x1,x2,y1,y2),fill=getRandomColor()) for i in range(20): draw.point([random.randint(0,width),random.randint(0,height)],fill=getRandomColor()) x = random.randint(0,width) y = random.randint(0,height) draw.arc((x,y,x+5,y+5),0,90,fill=getRandomColor()) image.save('feixue.jpg')
自己嘗試一下可不可識別吧