图像过滤器

from PIL import Image
#图像过滤处理
'''
对图像进行过滤处理需要获取图像的像素值。图像的像素值可以通过Image类的getdata
方法和getpixel方法获得。所得到的像素信息在数值上是以0 -255的整数表示,
按照R (红色)、G (绿色)、B (蓝色)的顺序依次排列,整体作为-一个元组。下面
的源代码展示了打开当前目录下python.jpg的文件,将该图像的像素进行取反后,保
存为python_ filter.jpg的功能。
getdata方法返回一个能够访问图像所有像素的迭代器。在本例中就是取出每一
个像素并进行取反(用255减去该值)。当所有像素值取值完毕后,使用putdata方法
将原本Image类对象保存的像素值进行替换。该源代码运行输出后的图像如下所示。

'''
def main():
    #获取打开图片
    image=Image.open('python.png')
    buffer=[]
    for pixel in image.getdata():
        buffer.append((
            255 - pixel[0],
            255 - pixel[1],
            255 - pixel[2],))
    image.putdata(buffer)

    image.save('python_filter.jpg')

if __name__ == '__main__':
    main()

 

posted @ 2019-01-05 20:58  青春叛逆者  阅读(561)  评论(0编辑  收藏  举报