本篇文章小编给大家分享一下python实现图片特效处理代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
前言:
对于图片处理,在日常生活中我们常常能够看到。
比如发个朋友圈之前,我们需要给自己的照片加个滤镜;在上传头像时候,需要对照片进行裁剪,这些都是图片的处理。
待处理的原图:
一、黑白特效
将图片处理后,变为黑白颜色
把像素的R,G,B三个通道数值都置为:r*0.299+g*0.587+b*0.114
效果
黑白特效:
代码:
#!/usr/bin/env python # encoding: utf-8 import numpy as np from PIL import Image class picture: ''' This is a main Class, the file contains all documents. One document contains paragraphs that have several sentences It loads the original file and converts the original file to new content Then the new content will be saved by this class ''' def __init__(self): self.path = 'assets/picture.jpeg' def hello(self): ''' This is a welcome speech :return: self ''' print('*' * 50) print(' ' * 20 + '图片转换特效之黑白') print(' ' * 5 + '作者: autofelix Date: 2022-01-17 13:14') print('*' * 50) return self def run(self): ''' The program entry ''' im = self.to_black_white() im.show() im.save('assets/black_white.jpeg') def to_black_white(self): ''' Picture to black white ''' im = np.asarray(Image.open(self.path).convert('RGB')) trans = np.array([[0.299, 0.587, 0.114], [0.299, 0.587, 0.114], [0.299, 0.587, 0.114]]).transpose() im = np.dot(im, trans) return Image.fromarray(np.array(im).astype('uint8')) if __name__ == '__main__': picture().hello().run()
二、流年特效
将图片处理后,变为流年特效
把R通道的数值开平方,然后乘以一个参数
效果
流年特效:
代码:
#!/usr/bin/env python # encoding: utf-8 import numpy as np from PIL import Image class picture: ''' This is a main Class, the file contains all documents. One document contains paragraphs that have several sentences It loads the original file and converts the original file to new content Then the new content will be saved by this class ''' def __init__(self): self.path = 'assets/picture.jpeg' def hello(self): ''' This is a welcome speech :return: self ''' print('*' * 50) print(' ' * 20 + '图片转换特效之流年') print(' ' * 5 + '作者: autofelix Date: 2022-01-17 13:14') print('*' * 50) return self def run(self): ''' The program entry ''' im = self.fleeting() im.show() im.save('assets/fleeting.jpeg') def fleeting(self, params=12): ''' Picture to fleeting ''' im = np.asarray(Image.open(self.path).convert('RGB')) im1 = np.sqrt(im * [1.0, 0.0, 0.0]) * params im2 = im * [0.0, 1.0, 1.0] im = im1 + im2 return Image.fromarray(np.array(im).astype('uint8')) if __name__ == '__main__': picture().hello().run()
三、旧电影特效
将图片处理后,变为旧电影特效
把像素的R,G,B三个通道数值,3个通道的分别乘以3个参数后求和,最后把超过255的值置为255
效果
旧电影特效:
代码:
#!/usr/bin/env python # encoding: utf-8 import numpy as np from PIL import Image class picture: ''' This is a main Class, the file contains all documents. One document contains paragraphs that have several sentences It loads the original file and converts the original file to new content Then the new content will be saved by this class ''' def __init__(self): self.path = 'assets/picture.jpeg' def hello(self): ''' This is a welcome speech :return: self ''' print('*' * 50) print(' ' * 20 + '图片转换特效之旧电影') print(' ' * 5 + '作者: autofelix Date: 2022-01-17 13:14') print('*' * 50) return self def run(self): ''' The program entry ''' im = self.old_film() im.show() im.save('assets/old_film.jpeg') def old_film(self): ''' Picture to old film ''' im = np.asarray(Image.open(self.path).convert('RGB')) trans = np.array([[0.393, 0.769, 0.189], [0.349, 0.686, 0.168], [0.272, 0.534, 0.131]]).transpose() im = np.dot(im, trans).clip(max=255) return Image.fromarray(np.array(im).astype('uint8')) if __name__ == '__main__': picture().hello().run()
四、反色特效
将图片处理后,变为反色特效
这个最简单了,用255减去每个通道的原来的数值
效果
反色特效:
代码:
#!/usr/bin/env python # encoding: utf-8 import numpy as np from PIL import Image class picture: ''' This is a main Class, the file contains all documents. One document contains paragraphs that have several sentences It loads the original file and converts the original file to new content Then the new content will be saved by this class ''' def __init__(self): self.path = 'assets/picture.jpeg' def hello(self): ''' This is a welcome speech :return: self ''' print('*' * 50) print(' ' * 20 + '图片转换特效之反色') print(' ' * 5 + '作者: autofelix Date: 2022-01-17 13:14') print('*' * 50) return self def run(self): ''' The program entry ''' im = self.reverse() im.show() im.save('assets/reverse.jpeg') def reverse(self): ''' Picture to reverse ''' im = 255 - np.asarray(Image.open(self.path).convert('RGB')) return Image.fromarray(np.array(im).astype('uint8')) if __name__ == '__main__': picture().hello().run()
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级