栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python做图片处理_Python图片处理?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python做图片处理_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()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号