zoukankan      html  css  js  c++  java
  • PILpython的图像处理模块

    PIL 提供了丰富的功能模块:Image,ImageDraw,ImageEnhance,ImageFile 等等。最常用到的模块是 Image, ImageDraw,ImageEnhance 这三个模块。

    1、Image模块

      最基本的模块,每个Image对象对应了一幅图像,基本的功能如下:  

    1 from PIL import Image
    2 img = Image.open('pic.jpg')#打开一幅图像
    3 new_img = img.resize((128.128),Image.BILINEAR)#调整图像大小
    4 new_img.save('pic_r.jp')#保存为pic.jpg
    5 rot_img = new_img.rotate(45)#图片旋转45度
    6 rot_img.save('rot_img.jpg')
    7 rot_img.save('rot_img.bmp')#保存为bmp文件,格式转换如此简单
    8 print(rot_img.histogram())#打印所有256个灰度级像素点个数的统计值,以列表形式

    2、ImageDraw模块

      提供基本的图形绘制。可绘制直线、弧线、矩形、多边形、椭圆、扇形等等。    

    from PIL import Image,ImageDraw
    img = Image.open("pic.jpg")
    draw = ImageDraw.Draw(img)#建立绘图对象
    width,height = img.size#获取原始图像大小
    draw.line(((0,0),(width-1,height-1)),fill=255)#画一条直线,(0,0)到(width-1,height-1),fill指线的颜色
    draw.line(((0,height-1),(width-1,0)),fill=255)#同上
    img.save("cross_line.jpg")#保存新图像
    draw.arc((0,0,width-1,height-1),0,360,fill=255)#(0,0,wifth-1,heght-1)指定了圆的范围,0,360指定了圆的起始角度和终止角度,fill指线的颜色
    img.save("circle.jpg")

    3、ImageEnhance模块

      提供图像增强功能。可以用来进行色彩增强、亮度增强、对比度增强、图像尖锐化等等增强操作。所有操作都有相同形式的接口—— 通过相应类的 enhance 方法实现: 色彩增强通过 Color类的 enhance 方法实现;亮度增强通过 Brightness 类的 enhance 方法实现;对比度增强通过 Contrast 类的 enhance 方法实现;尖锐化通过 Sharpness 类的 enhance 方法实现。  

    from import Image,ImageEnhance
    img = Image.open("pic.jpg")
    brightness = ImageEnhance.Brightness(img)#获取亮度增强对象
    bright_img = brightness.enhance(2.0)#亮度增加两倍
    bright_img.save("bright.jpg")#保存
    sharpness = ImageEnhance.Sharpness(img)#获取图片尖锐化对象
    sharp_img = sharpness.enhance(7.0)#尖锐化
    contrast = ImageEnhance.Contrast(img)#获取对比度对象
    contrast_img = contrast.enhance(2.0)#增加对比度

      好吧,关于PIL的介绍就简单的说到这,更多的功能请查看PIL-handbook.pdf

      PIL库可以方便的进行图像的简单处理,如果需要更为专业复杂的图像图形处理,请学习MATLAB.

      最后附上PIL库的下载地址http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil,可以支持python3的哦。


      

  • 相关阅读:
    java多线程之系列目录
    RecyclerView的源码分析
    ConCurrentHashMap在1.7和1.8区别
    插件化之细节
    组件化之开发细节
    组件化之开发总结
    线程之volatile基本内容
    线程之Synchronized基本内容
    设计模式之动态代理模式原理介绍
    操作系统之内存映射
  • 原文地址:https://www.cnblogs.com/evening/p/2431623.html
Copyright © 2011-2022 走看看