zoukankan      html  css  js  c++  java
  • 美白,磨皮,搞笑图片处理

    PIL库

    这是一个支持图像存储、显示和处理的函数库,它能够处理几乎所有图像格式,可以完成对图像的缩放、裁剪、叠加以及图像添加条纹,文字等信息等的操作。

    首先我们当然学习的是经典的Image子库;

    方法 描述
    Image.open(filename) 根据参数加载图像文件
    Image.new(mode,size,color) 根据给定参数创建一个新的图像
    Image.open(StringIO.StringIO(buffer)) 从字符串中获取图像
    Image.frombytes(mode,size,data) 根据像素点data创建图像
    Image.verify()

    对图像文件完整性进行检查,返回异常

    首先我认识到一个简单的例子:读取下载好的图片并将它可视化(代码如下):

    from PIL import Image
    im = Image.open('test1.jpg') # 读取图片
    im.show() # 可视化

    通过使用相关的图片查看器,我们就可以打开自己桌面上图片进行可视化了

    美颜开始:

    代码如下:

    from PIL import Image

    from PIL import ImageEnhance
    import cv2
    import numpy as np
     
     
    # image = Image.open('test4.jpg')
    #image.show()
    def BrightnessEnhancement(brightness):
        image = Image.open('test4.jpg')
        enh_bri = ImageEnhance.Brightness(image)
    #    brightness =1.5
        image_brightened = enh_bri.enhance(brightness)
        image_brightened.show()
     
    def ContrastEnhancement(contrast):
        image = Image.open('test4.jpg')
        enh_con = ImageEnhance.Contrast(image)
    #    contrast =1.5
        image_contrasted = enh_con.enhance(contrast)
        image_contrasted.show()
     
    def ColorEnhancement(color):
        image = Image.open('test4.jpg')
        enh_col = ImageEnhance.Color(image)
    #    color =0.8
        image_colored = enh_col.enhance(color)
        image_colored.show()
     
    def SharpnessEnhancement(sharpness):
        image = Image.open('test4.jpg')
        enh_sha = ImageEnhance.Sharpness(image)
    #    sharpness = 2
        image_sharped = enh_sha.enhance(sharpness)
        image_sharped.show()
     
    def Filter(image):
        image =cv2.imread('test4.jpg')
        Remove=cv2.bilateralFilter(image,0,0,10)
        cv2.imshow('filter',Remove)
        cv2.waitKey(0)
        cv2.destroyAllWindows()
    #    res = np.uint8(np.clip((1.2 * image + 10), 0, 255))
    #    tmp = np.hstack((dst, res))
    #    cv2.imshow('bai',res)
     
     
    def WhiteBeauty(image,whi):
        image =cv2.imread('test4.jpg')
        white = np.uint8(np.clip((whi * image + 50), 0, 255))
        cv2.imshow('bai',white)
        cv2.waitKey(0)
        cv2.destroyAllWindows()
     
     
    if __name__ =="__main__":
        filepath = 'test4.jpg'
        #原始图像
        brightness = 1.5
        contrast = 0.2
        color=1.9
        sharpness=0.1
        BrightnessEnhancement(brightness)
        ContrastEnhancement(contrast)
        ColorEnhancement(color)
        SharpnessEnhancement(sharpness)
        whi = 1.2
        image =cv2.imread('test4.jpg')
        Filter(image)
        WhiteBeauty(image,whi)

     

     还有其他的图片处理

    图像灰度化处理

     这是一张彩色的建筑图,我觉得太鲜艳了,又比较喜欢一种黑白色调显得低调深沉就像我一样,那么我可以使用下面的代码:

    from PIL import Image
    img = Image.open("test3.jpg")
    # 灰度化:将RGB/RGBA -> L
    img = img.convert("L")
    img.show()

    效果如下:

    还有很多效果滴:

    在Image.filter(filter)中:

    # BLUR - 模糊处理
    # CONTOUR - 轮廓处理
    # DETAIL - 增强
    # EDGE_ENHANCE - 将图像的边缘描绘得更清楚
    # EDGE_ENHANCE_NORE - 程度比EDGE_ENHANCE更强
    # EMBOSS - 产生浮雕效果
    # SMOOTH - 效果与EDGE_ENHANCE相反,将轮廓柔和
    # SMOOTH_MORE - 更柔和
    # SHARPEN - 效果有点像DETAIL
    再对“test3.jpg”进行处理:

    from PIL import Image
    from PIL import ImageFilter
    testimg = Image.open("test3.jpg")
    testimg.show()
    filterimg = testimg.filter(ImageFilter.EMBOSS)
    filterimg.show()

    …………还有很多…………

    and各种处理方案:

    Image.getbands()

    Image.geebbox()

    Image.getcolors(maxcolor=256)

    Image.getdata(band=None)(一般和list()结合使用)

    Image.getextrema()

    Image.getpixel((x,y))

    Image.histogram(mask=None,extrema=None)

     还有很多骚操作,就不发了

     
  • 相关阅读:
    用批处理来启动/停止SQL SERVER 2005的服务 【转载】
    c#命名法 【转】
    oracle 隐式游标,显示游标,游标循环,动态SELECT语句和动态游标,异常处理,自定义异常【转载】
    fetch bulk collect into 批量效率的读取游标数据 【转载】
    Oracle 外连接和 (+)号的用法 【转载】
    如何在Oracle中复制表结构和表数据 【转载】
    Oracle 小知识点
    VSS 2005 配置(含录像) 【转载】
    json 详解 【转】
    .NET 2.0 使用最新版的JSON.net 进行反序列化 【转载】
  • 原文地址:https://www.cnblogs.com/czd1/p/10686510.html
Copyright © 2011-2022 走看看