(python处理图片)(python处理图片大小)

免费学习资料领取:加QQ群1141249762

利用PIL和numpy来对图片做简单的处理。

from PIL import Image

import numpy as np

#导入需要用的库

a = np.array(Image.open(

"E:/Pictures/pexels-photo-356378.jpg"))

#读入图片

b = [255,255,255]-a

im = Image.fromarray(b.astype('uint8'))

im.save('E:/Pictures/pexels-photo.jpg.jpg') #保存处理之后的图片

读入的图片是我在pexels上找的美狗。

(python处理图片)(python处理图片大小)

生成的是反色图片,处理之后的图片是这样的

(python处理图片)(python处理图片大小)
(python处理图片)(python处理图片大小)

a = np.array(Image.open(

"E:/Pictures/pexels-photo-356378.jpg").convert('L'))

c = (100/255)*a +150

im = Image.fromarray(c.astype('uint8'))

im.save("E:/Pictures/pexels-photo2.jpg")

这段代码还是读入上面那只狗狗的图片,生成的新图片是这样的

(python处理图片)(python处理图片大小)

a = np.array(Image.open(

"E:/Pictures/pexels-photo-356378.jpg").convert('L'))

c = 255*(a/255)**2

im = Image.fromarray(c.astype('uint8'))

im.save("E:/Pictures/pexels-photo3.jpg")

还是读入最上面那张美狗图片,生成了下面这张图片

(python处理图片)(python处理图片大小)

将图片转变成手绘风格的。

a = np.array(Image.open(

'E:/Pictures/m.jpg').convert('L')).astype('float')

depth = 20 #取0-100

grad = np.gradient(a)

grad_x,grad_y = grad

grad_x = grad_x*depth/100

grad_x = grad_x*depth/100

A= np.sqrt(grad_x**2 + grad_y**2 + 1)

uni_x = grad_x/A

uni_y = grad_y/A

uni_z = 1./A

vec_a1 = np.pi/2.2

vec_a2 = np.pi/4.

dx = np.cos(vec_a1)*np.cos(vec_a2)

dy = np.cos(vec_a1)*np.sin(vec_a2)

dz = np.sin(vec_a1)

b = 255 * (dx *uni_x +dy *uni_y+dz *uni_z)

b = b.clip(0,255)

im = Image.fromarray(b.astype('uint8'))

im.save('E:/Pictures/m2.jpg')

(python处理图片)(python处理图片大小)
(python处理图片)(python处理图片大小)

上面是原图,下面是处理之后的手绘风格的图片,猫咪的脸看上去不是很清楚,调一下:

a = np.array(Image.open(

"E:/Pictures/m2.jpg").convert('L'))

c = (100/255)*a +150

im = Image.fromarray(c.astype('uint8'))

im.save("E:/Pictures/m3.jpg")

生成的m3图片如下。

(python处理图片)(python处理图片大小)

猫脸看上去好像是清晰了一些呢。。。。

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者野猫谈python所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(python处理图片)(python处理图片大小)
本文链接:https://www.51qsb.cn/article/m7018.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2022-12-08
下一篇2022-12-09

你可能还想知道

发表回复

登录后才能评论