CSDN博客地址

Python-骚操作(一)

一:生成二维码

首先需要先安装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等级来达到自己想要的效果

 

posted @ 2020-04-19 20:07  Yi_warmth  阅读(653)  评论(0编辑  收藏  举报
CSDN博客地址