Lichord

学习笔记

0%

Python数据分析与展示_6_图像手绘效果实例

PIL库

  • PIL,Python Image Library,图像处理库
    from PIL import Image

    图像的数组表示

  • 图像是一个由像素组成的二维矩阵,每个元素是一个RGB值
    1
    2
    3
    4
    5
    6
    from PIL import Image
    import numpy as np
    im=np.array(Image.open('C:/Users/HASEE/DeskTop/flower.jpg'))
    # 图像是一个三位数组,维度分别是高度,宽度,像素RGB值
    print(im.shape,im.dtype)
    (135, 180, 3) uint8

图像的变换

  • 读入图像,获取像素RGB值,修改后另存为新的文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    # 获取原图片的补值
    b=[255,255,255]-im
    image=Image.fromarray(b.astype('uint8'))
    image.save('C:/Users/HASEE/DeskTop/flower2.jpg')

    # convert('L')表示将一个彩色的图片变成一个灰度值图片,是一个二维数组,其中每一个元素对应一个灰度值
    a=np.array(Image.open('C:/Users/HASEE/DeskTop/flower.jpg').convert('L'))
    # 取反
    b=255-a
    # Image.fromarray还原为图像类型
    image=Image.fromarray(b.astype('uint8'))
    image.save('C:/Users/HASEE/DeskTop/flower3.jpg')

    # 灰度压缩,+150变换区间
    c=(100/255)*a+150
    image=Image.fromarray(c.astype('uint8'))
    image.save('C:/Users/HASEE/DeskTop/flower4.jpg')

    # 像素平方
    d=255*(a/255)**2
    image=Image.fromarray(d.astype('uint8'))
    image.save('C:/Users/HASEE/DeskTop/flower5.jpg')

图像的手绘效果

手绘效果的几个特征:

  • 黑白灰色
  • 边界线条较重
  • 相同或相近色彩趋于白色
  • 略有光源效果