zoukankan      html  css  js  c++  java
  • 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等级来达到自己想要的效果

  • 相关阅读:
    Django model转字典的几种方法
    使用Nagios打造专业的业务状态监控
    Etcd安全配置之Basic Auth认证
    ELK日志系统之通用应用程序日志接入方案
    ELK日志系统之使用Rsyslog快速方便的收集Nginx日志
    中小团队落地配置中心详解
    ELK构建MySQL慢日志收集平台详解
    Django model select的各种用法详解
    Python:每日一题003
    Python:每日一题002
  • 原文地址:https://www.cnblogs.com/zhouzetian/p/12733207.html
Copyright © 2011-2022 走看看