一:生成二维码
首先需要先安装MyQR模块
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ myqr
生成一张简单的二维码
import os from MyQR import myqr def test2(): myqr.run( words="http://www.baidu.com", # 所包含的信息 picture=os.path.join(os.path.abspath(os.path.dirname(__file__)), "Image", "1.jpg"), # 背景图片路径 colorized=True, # 是否有颜色,为False时为黑白 save_name="code.png" # 输出的文件名 )
二: 对图片批量抠图
1: 先安装PaddlePaddle: python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
2: 安装paddlehub模型库: pip install -i https://mirror.baidu.com/pypi/simple paddlehub
import paddlehub as hub hum = hub.Module(name='deeplabv3p_xception65_humanseg') # 加载模型 file = ["1.png"] # 指定要抠图的图片 # 传入多张图片组成的list results = hum.segmentation(data={"image": file}) # 进行抠图
处理后的图片会存放在自动新建的humanseg_output文件夹下
三:文字情绪识别
处理自然语言,所需要安装包的安装方式跟例二一样
def test5(): senta = hub.Module(name="senta_lstm") # 加载模型 # 准备要识别的语句 datas = ["真好", "真差", "真牛逼", "屌爆了"] results = senta.sentiment_classify(data={"text":datas}) for result in results: print(result) test5()
得到的是一个字典列表
{'text': '真好', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9992, 'negative_probs': 0.0008}
{'text': '真差', 'sentiment_label': 0, 'sentiment_key': 'negative', 'positive_probs': 0.05, 'negative_probs': 0.95}
{'text': '真牛逼', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.5602, 'negative_probs': 0.4398}
{'text': '屌爆了', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.69, 'negative_probs': 0.31}
四:识别是否带了口罩
所需要的的安装包跟上面的一样
def test6(): mod = hub.Module(name='pyramidbox_lite_mobile_mask') # 图片列表 file= ["face.png"] mod.face_detection(data={"image": file})
运行之后图片会自动生成到新建的detection_result文件夹下
效果如下:
五: 将图片抠图完之后设置背景图
import paddlehub as hub from PIL import Image def test(): # 加载模型 humanseg = hub.Module(name='deeplabv3p_xception65_humanseg') # 抠图 results = humanseg.segmentation(data={'image': ['person.png']}) # 读取背景图片 bg = Image.open('pic.png') # 读取原图 im = Image.open('humanseg_output/person.png').convert('RGBA') im.thumbnail((bg.size[1], bg.size[1])) # 分离通道 r, g, b, a = im.split() # 将抠好的图片粘贴到背景上 bg.paste(im, (bg.size[0] - bg.size[1], 0), mask=a) bg.save('xscn.png') test()
效果如下:
六:实现九宫格
def test(): im = Image.open("person.png") # 宽高各除以3,获取裁剪后的单张图片大小 width = im.size[0] // 3 height = im.size[1] // 3 # 裁剪图片的左上角坐标 start_x = 0 start_y = 0 # 用于给图片命名 im_name = 1 for i in range(3): for j in range(3): # 剪切图片并保存 crop = im.crop((start_x, start_y, start_x+width, start_y+height)) crop.save(str(im_name) + ".png") # 将左上角坐标的x轴向右移动 start_x += width im_name += 1 # 第一行剪切完后x继续往下移动 start_x = 0 start_y += height
七:祛斑功效
import cv2 def test(): level = 22 # 降噪 img = cv2.imread("girl.jpg") img = cv2.bilateralFilter(img, level, level*4, level*4) cv2.imwrite("result.jpg", img)
结果对比:
可以通过调节level等级来达到自己想要的效果