• Python图像库PIL 使用


    可以轻松的使用一下图像功能,官方API:http://effbot.org/imagingbook/

    from PIL import Image
    
    def img_show(img):
     	pil_img = Image.fromarray(np.uint8(img))
     	pil_img.show()
    
    (x_train, t_train), (x_test, t_test) = load_mnist(flatten=True,
    normalize=False)
    img = x_train[0]
    label = t_train[0]
    print(label) # 5
    print(img.shape) # (784,)
    img = img.reshape(28, 28) # 把图像的形状变成原来的尺寸
    print(img.shape) # (28, 28)
    img_show(img)
    
    flatten=True时读入的图像是以一列(一维)NumPy
    数组的形式保存的。因此,显示图像时,需要把它变为原来的28像素 × 28
    像素的形状。可以通过reshape()方法的参数指定期望的形状,更改NumPy
    数组的形状。此外,还需要把保存为NumPy数组的图像数据转换为PIL用
    的数据对象,这个转换处理由Image.fromarray()来完成

    1.安装PIL

    sudo apt-get install python-imaging

    图像缩放操作:

    import Image
    
    # 打开一个jpg图像文件,注意路径要改成你自己的:
    im = Image.open('/Users/michael/test.jpg')
    # 获得图像尺寸:
    w, h = im.size
    # 缩放到50%:
    im.thumbnail((w//2, h//2))
    # 把缩放后的图像用jpeg格式保存:
    im.save('/Users/michael/thumbnail.jpg', 'jpeg')

     模糊效果:

    import Image, ImageFilter
    
    im = Image.open('/Users/michael/test.jpg')
    im2 = im.filter(ImageFilter.BLUR)
    im2.save('/Users/michael/blur.jpg', 'jpeg')

    PIL-blur

    例子:验证码图像

    import Image, ImageDraw, ImageFont, ImageFilter
    import random
    
    # 随机字母:
    def rndChar():
        return chr(random.randint(65, 90))
    
    # 随机颜色1:
    def rndColor():
        return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))
    
    # 随机颜色2:
    def rndColor2():
        return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))
    
    # 240 x 60:
    width = 60 * 4
    height = 60
    image = Image.new('RGB', (width, height), (255, 255, 255))
    # 创建Font对象:
    font = ImageFont.truetype('Arial.ttf', 36)
    # 创建Draw对象:
    draw = ImageDraw.Draw(image)
    # 填充每个像素:
    for x in range(width):
        for y in range(height):
            draw.point((x, y), fill=rndColor())
    # 输出文字:
    for t in range(4):
        draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2())
    # 模糊:
    image = image.filter(ImageFilter.BLUR)
    image.save('code.jpg', 'jpeg');

    éªè¯ç 

    其它博客:https://blog.csdn.net/u010159842/article/details/52860470 

  • 相关阅读:
    [转]zxing二维码的生成和解码 j2se
    [转]Android的网络与通信
    (转)Firefox:浏览器内置数据库之路
    dom Framework oop模块
    我的框架 别名机制
    获取屏幕的PDI值
    mass Framework lang模块
    王云飞 《绿色生活》(附译文)
    dom Framework query模块
    dom Framework核心模块发布!(更新)
  • 原文地址:https://www.cnblogs.com/onenoteone/p/12441796.html
Copyright © 2020-2023  润新知