Python生成二维码图片
from captcha.image import ImageCaptcha import numpy as np from PIL import Image import random import time import os import cv2 import matplotlib.pyplot as plt number = ['0','1','2','3','4','5','6','7','8','9'] alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] ALPHABET = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] # generate an random array of size 4 def random_captcha_text(char_set=number+alphabet+ALPHABET,captcha_size=4): captcha_text=[] for i in range(captcha_size): random.seed(time.time()) random.shuffle(char_set) # print(char_set) c=random.choice(char_set) captcha_text.append(c) return captcha_text # Randomly generate pictures of four numbers def gen_captcha_text_and_image(): while(1): image=ImageCaptcha() captcha_text=random_captcha_text() captcha_text="".join(captcha_text) captcha=image.generate(captcha_text) # image.write(captcha_text, captcha_text + '.jpg') captcha_image=Image.open(captcha) # captcha_image.show() captcha_image=np.array(captcha_image) # print(captcha_image.shape) if captcha_image.shape==(60,160,3): break return captcha_text,captcha_image if __name__ == '__main__': text,image=gen_captcha_text_and_image() print(text) print(image.shape) gray=np.mean(image,-1) print(gray.shape) fig=plt.figure() ax=fig.add_subplot(111) ax.text(0.1,0.9,text,ha='center',va='center',transform=ax.transAxes) plt.imshow(image) # plt.show() path='./image' #存放二维码为的位置 for i in range(500): #生成二维码的数量 text,image=gen_captcha_text_and_image() fullPath=os.path.join(path,text+".jpg") cv2.imwrite(fullPath,image) print(text + "{0}/10000".format(i))
from captcha.image import ImageCaptcha
import numpy as np
from PIL import Image
import random
import time
import os
import cv2
import matplotlib.pyplot as plt
number = ['0','1','2','3','4','5','6','7','8','9']
alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
ALPHABET = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
# generate an random array of size 4
def random_captcha_text(char_set=number+alphabet+ALPHABET,captcha_size=4):
captcha_text=[]
for i in range(captcha_size):
random.seed(time.time())
random.shuffle(char_set)
# print(char_set)
c=random.choice(char_set)
captcha_text.append(c)
return captcha_text
# Randomly generate pictures of four numbers
def gen_captcha_text_and_image():
while(1):
image=ImageCaptcha()
captcha_text=random_captcha_text()
captcha_text="".join(captcha_text)
captcha=image.generate(captcha_text)
# image.write(captcha_text, captcha_text + '.jpg')
captcha_image=Image.open(captcha)
# captcha_image.show()
captcha_image=np.array(captcha_image)
# print(captcha_image.shape)
if captcha_image.shape==(60,160,3):
break
return captcha_text,captcha_image
if __name__ == '__main__':
text,image=gen_captcha_text_and_image()
print(text)
print(image.shape)
gray=np.mean(image,-1)
print(gray.shape)
fig=plt.figure()
ax=fig.add_subplot(111)
ax.text(0.1,0.9,text,ha='center',va='center',transform=ax.transAxes)
plt.imshow(image)
# plt.show()
path='./image'
for i in range(500):
text,image=gen_captcha_text_and_image()
fullPath=os.path.join(path,text+".jpg")
cv2.imwrite(fullPath,image)
print(text + "{0}/10000".format(i))