• PIL库图像处理


    PIL有如下几个模块

    Image模块、ImageChops模块、ImageCrackCode模块

    ImageDraw模块、ImageEnhance模块、ImageFile模块

    ImageFileIO模块、ImageFilter模块、ImageFont模块

    ImageGrab模块、ImageOps模块、ImagePath模块

    ImageSequence模块、ImageStat模块、ImageTk模块

    ImageWin模块、PSDraw模块

    下面仅介绍一下几种库,更全面介绍参考https://baijiahao.baidu.com/s?id=1595108270577043146&wfr=spider&for=pc

     image模块

    Image模块提供了一个相同名称的类,即image类,用于表示PIL图像。Image模块是PIL中最重要的模块,比如创建、打开、显示、保存图像等功能,合成、裁剪、滤波等功能,获取图像属性功能,如图像直方图、通道数等。

    ImageEnhance模块

    ImageEnhance模块包括一些用于图像增强的类。它们分别为Color类、Brightness类、Contrast类和Sharpness类。

    ImageFilter模块

    ImageFilter模块包括各种滤波器的预定义集合,与Image类的filter方法一起使用。该模块包含这些图像增强的滤器:

    BLUR,CONTOUR,DETAIL,EDGE_ENHANCE

    EDGE_ENHANCE_MORE,EMBOSS,FIND_EDGES

    SMOOTH,SMOOTH_MORE和SHARPEN

    PIL基本基本概念

    PIL中所涉及的基本概念有如下几个:

    通道(bands)、模式(mode)、尺寸(size)

    坐标系统(coordinate system)、调色板(palette)

    信息(info)和滤波器(filters)

    通道

    每张图片都是由一个或者多个数据通道构成。PIL允许在单张图片中合成相同维数和深度的多个通道。以RGB图像为例,每张图片都是由三个数据通道构成,分别为R、G和B通道。而对于灰度图像,则只有一个通道。对于一张图片的通道数量和名称,可以通过getbands()方法来获取。getbands()方法是Image模块的方法,它会返回一个字符串元组(tuple)。该元组将包括每一个通道的名称。Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

    用PIL库处理图像

     1 from PIL import Image
     2 from PIL import ImageFilter
     3 from PIL import ImageEnhance
     4 im=Image.open("余文乐.jpg")
     5 im.thumbnail((300,400))
     6 im.save("余文乐TN.jpg")
     7 r,g,b=im.split()
     8 newg=g.point(lambda i:i*0.9)
     9 newb=b.point(lambda i:i<100)
    10 om=Image.merge(im.mode,(r,newg,newb))
    11 om.save("余文乐Merge.jpg")
    12 om=Image.merge("RGB",(b,g,r))
    13 om.save("余文乐BGR.jpg")
    14 am=im.filter(ImageFilter.CONTOUR)
    15 am.save("余文乐CONTOUR.jpg")
    16 bm=ImageEnhance.Contrast(im)
    17 bm.enhance(20).save("余文乐EnContrast.jpg")

    效果图

    原图

    去光线图                                                          轮廓图                                                        20倍对比度增强效果图                                            

    缩略图

     1 from PIL import Image
     2 from PIL import ImageEnhance
     3 def BrightnessEnhancement(brightness):
     4     # '''
     5     # #亮度增强 :brightness在(0-1)之间,新图像较原图暗,在(1-~)新图像较原图亮 ,
     6     # ##brightness=1,保持原图像不变;可自定义参数范围
     7     # '''
     8     image = Image.open(filepath)
     9     enh_bri = ImageEnhance.Brightness(image)
    10 #    brightness =1.5
    11     image_brightened = enh_bri.enhance(brightness)
    12     image_brightened.show()
    13 def ContrastEnhancement(contrast):
    14     # '''
    15     # #对比度增强: 可自定义参数contrast范围,contrast=1,保持原图像不变
    16     # '''
    17     image = Image.open(filepath)
    18     enh_con = ImageEnhance.Contrast(image)
    19 #    contrast =1.5
    20     image_contrasted = enh_con.enhance(contrast)
    21     image_contrasted.show()
    22 def ColorEnhancement(color): 
    23     # '''
    24     # #色度增强 : 饱和度  color=1,保持原图像不变
    25     # '''
    26     image = Image.open(filepath)
    27     enh_col = ImageEnhance.Color(image)
    28 #    color =0.8
    29     image_colored = enh_col.enhance(color)
    30     image_colored.show()
    31 
    32 def SharpnessEnhancement(sharpness):
    33     # '''
    34     # #锐度增强: 清晰度  sharpness=1,保持原图像不变
    35     # '''
    36     image = Image.open(filepath)
    37     enh_sha = ImageEnhance.Sharpness(image)
    38 #    sharpness = 2
    39     image_sharped = enh_sha.enhance(sharpness)
    40     image_sharped.show()
    41 if __name__ =="__main__":
    42     filepath = '余文乐.jpg'
    43     #原始图像
    44     brightness = 1.5
    45     contrast = 0.2
    46     color=1.9
    47     sharpness=0.1
    48     BrightnessEnhancement(brightness)
    49     ContrastEnhancement(contrast)
    50     ColorEnhancement(color)
    

    锐度增强

    色度增强

    对比度增强

    亮度增强

     欢迎留言 !

  • 相关阅读:
    windows下Redis的安装和使用
    ansible plugins简介
    ansible roles例子
    openstack windows2012r2 glance镜像制作
    手动部署tidb(二进制包)集群
    4、ceph-deploy之配置使用对象存储
    3、ceph-deploy之配置使用文件系统
    2、ceph-deploy之配置使用RBD
    1、ceph-deploy之部署ceph集群
    ansible facts
  • 原文地址:https://www.cnblogs.com/SGzhang/p/10683904.html
Copyright © 2020-2023  润新知