资讯专栏INFORMATION COLUMN

用Python来P图

dendoink / 1001人阅读

摘要:骚操作用来图给大家带来一篇关于的文章,全称是,顾名思义,是用来做图像处理的。支持众多的框架接口,可以用于图像展示。这个可以用来实现图像的自动对比度增强,还有全局的统计分析等。

Python骚操作 | 用Python来P图

给大家带来一篇关于PIL的文章,PIL全称是Python Image Library,顾名思义,是用来做图像处理的。用这个库,可以实现很多PS里的效果,比如像图片模糊、寻找轮廓、边缘检测等等。我们来看看具体怎么做到的呢?​

PS作为世界四大发明之一可以说被广大网友用到了极致,只有你想不到的没有我P不了的,任何正经的图片在都可以变成搞笑图片(比如下图)当然也可以用ps做一点正经的事情。

作为一个爱折腾的程序猿能用代码的解决的事情绝对不会用其他的方式,Python可以打飞机,人工降雪,那么p个图对于Python来说是小儿科了,今天就教给大家Python之p图大法。

具体介绍

今天P图主要用到的就是PIL库。
PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了,今天只是简单的学习了几个方法就已经感受到PIL的强大。
PIL可以做很多和图像处理相关的事情:
图像归档(Image Archives)。PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等等。
图像展示(Image Display)。PIL较新的版本支持包括TkPhotoImage,BitmapImage还有Windows DIB等接口。PIL支持众多的GUI框架接口,可以用于图像展示。
图像处理(Image Processing)。PIL包括了基础的图像处理函数,包括对点的处理,使用众多的卷积核(convolution kernels)做过滤(filter),还有颜色空间的转换。PIL库同样支持图像的大小转换,图像旋转,以及任意的仿射变换。PIL还有一些直方图的方法,允许你展示图像的一些统计特性。这个可以用来实现图像的自动对比度增强,还有全局的统计分析等。

今天先给大家介绍今天学到的三个比较好玩的操作,并没有详细的介绍PIL那些最常用的特性与用法,感兴趣的小伙伴文末留言如果人数较多会考虑分享常用的特性。
主要参考自:
http://www.effbot.org/imaging...

代码实现

先上一个效果图。
实现这个效果使用的是PIL中的Blend类

Image.blend(image1,image2,alpha)

                                ⇒image

使用给定的两张图像及透明度变量alpha,插值出一张新的图像。这两张图像必须有一样的尺寸和模式

合成公式为:out=image1(1.0- alpha)+image2alpha

若变量alpha为0.0,返回第一张图像的拷贝。若变量alpha为1.0,将返回第二张图像的拷贝。对变量alpha的值无限制。

from PIL import Image
im1 = Image.open("124.jpg")
im2 = Image.open("123.jpg")
print(im1.mode,im1.size)
print(im2.mode,im2.size)
im = Image.blend(im1, im2, 0.3)
im.save("k3.jpg")

当然除了上面的方法还可以使用Composite类
Image.composite(image1,image2, mask) ⇒ image
复合类使用给定的两张图像及mask图像作为透明度,插值出一张新的图像。变量mask图像的模式可以为“1”,“L”或者“RGBA”。所有图像必须有相同的尺寸

from PIL import Image
im1 = Image.open("124.jpg")
im2 = Image.open("123.jpg")
r,g,b = im1.split()            
print(b.mode)
print(im1.mode,im1.size)
print(im2.mode,im2.size)
im = Image.composite(im1,im2,b)
im.save("k1.jpg")

自己只是做了一个简单的测试大家可以通过这种方法做出更好看的图片,PIL不仅可以使两张图片进行重合,还可以给图片添加水印。

from PIL import Image, ImageDraw,ImageFont
#将原来的图片转换为RGBA模式
im = Image.open(r"timg2.png").convert("RGBA")
#新建一个图片,尺寸与上面的尺寸一样,透明度为0即完全透明
txt=Image.new("RGBA", im.size, (0,0,0,0))
#设置要写文字的字体
fnt=ImageFont.truetype("D:PycharmProjectsmusicSIMYOU.TTF", 30)
#打汉字
d=ImageDraw.Draw(txt)
#写要打的位置,内容,用的字体,文字透明度
d.text((txt.size[0]-205,txt.size[1]-50),"@Ahab杂货铺",font=fnt, fill=(255,0,0,300))
#两个图片复合
out=Image.alpha_composite(im, txt)
#保存加水印后的图片
out.save(r"KB.png")

下面带来最后一组有趣的操作:

Filter类

im.filter(filter) ⇒ image

返回一个使用给定滤波器处理过的图像的拷贝。在该模块中,预先定义了很多增强滤波器,可以通过filter()函数使用,预定义滤波器包括:

BLUR

CONTOUR

DETAIL

EDGE_ENHANCE

EDGE_ENHANCE_MORE

EMBOSS

FIND_EDGES

SMOOTH

其中BLUR就是均值滤波,CONTOUR找轮廓,FIND_EDGES边缘检测,使用该模块时,需先导入。

from PIL import Image
from PIL import ImageFilter                         ## 调取ImageFilter
img = Image.open("123.jpg")
blu = imgF.filter(ImageFilter.BLUR)                ##均值滤波
con = imgF.filter(ImageFilter.CONTOUR)             ##找轮廓
edge = imgF.filter(ImageFilter.FIND_EDGES)         ##边缘检测
blu.save("k.jpg")
con.save("k2.jpg")
edge.save("k3.jpg")

看一下效果第一张是原图,剩下的是根据我们设置的呈现的效果图。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43110.html

相关文章

  • python像处理象的制作详细说明

      此篇文章主要是给大家介绍了python图像处理图象的制作实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪  文章正文  事实上前边咱们就早已运用了图象的制作,如:  io.imshow(img)  这一行代码的本质是运用matplotlib包对图片开展制作,制作完成后,回到一个matplotlib类型的信息。因而,我们还可以这么写:  impor...

    89542767 评论0 收藏0
  • pytorch中获得计算和自行求导数

      本文关键阐述了在pytorch中获得计算图和自行求导数,文章内容紧扣主题进行详尽的基本介绍,具有很强的实用价值,需用的同学可以参考下  序言:  今日聊聊pytorch的计算图和自行求导数,我们首先从简易事例来说,下边是个简单函数设立了yy和xx相互关系  然后我们结点和边形式表示上面公式:  上面的式子可以用图的形式表达,接下来我们用torch来计算x导数,首先我们创建一个tensor并且将...

    89542767 评论0 收藏0
  • 如何使Python pyecharts绘制散点

      小编写这篇文章的主要目的,主要是给大家去做一个解答,解答的内容主要是关于Python pyecharts的一些案例,包括如何使用它去进行绘制一个相关的散点图,怎么能够快速的去进行绘制。就具体的内容,下面就给大家详细解答下。  什么是散点图?  散点图是指在数理统计回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,由此趋势可以选择合适的函数进行经验分布的拟合...

    89542767 评论0 收藏0
  • Python3网络爬虫实战---16、Web网页基础

    摘要:,简称为,是一种脚本语言,和配合使用,提供给用户的只是一种静态的信息,缺少交互性。这就是网页的三大基本组成。父节点拥有子节点,同级的子节点被称为兄弟节点。选择属于其父节点的首个节点的每个节点。同上,从最后一个 上一篇文章:Python3网络爬虫实战---15、爬虫基础:HTTP基本原理下一篇文章:Python3网络爬虫实战---17、爬虫基本原理 我们平时用浏览器访问网站的时候,一个...

    netScorpion 评论0 收藏0

发表评论

0条评论

dendoink

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<