有趣的Python,使用Python将照片绘制出美腻的素描画

PIL(Python Image Library)是python的第三方图像处理库,PIL功能非常强大,但API却非常简单易用,其强大的功能与众多的使用人数,几乎已经被认为是Python官方图像处理库了。 Python3PIL移植到pillow库,pillow号称是friendly fork for PIL。

如果想了解更多可以看中文文档:「链接」

来不及做更多解释,直接付代码,还等什么,尝试一下。

from PIL import Image, ImageFilter, ImageOps
import os
def Formula(x, y, alpha):
"""

:param a:
:param b:
:param alpha:
:return:
"""
return min(int(x*255/(256-y*alpha)), 255)
def SketchDrawer(image,blur=6, alpha=1.0):
"""

:param blur:
:param alpha:
:return:
"""
image_name = os.path.splitext(image)[0]
image = Image.open(image) # 加载图片
luminance_image = image.convert('L') # 图片转换成灰度图
luminance_img_copy = luminance_image.copy()
inverted_image = ImageOps.invert(luminance_img_copy) # 反转颜色
for i in range(blur): # 模糊度
# ImageFilter.BLUR为模糊滤波,处理之后的图像会整体变得模糊
inverted_image = inverted_image.filter(ImageFilter.BLUR)
width, height = luminance_image.size
for x in range(width):
for y in range(height):
# 返回给定位置的像素值。如果图像为多通道,则返回一个元组。
pixel_luminance = luminance_image.getpixel((x, y))
pixel_inverted = inverted_image.getpixel((x, y))
luminance_image.putpixel((x, y), Formula(pixel_luminance, pixel_inverted, alpha))
luminance_image.show() # 展示图片效果
luminance_image.save('{0}_L.jpg'.format(image_name))
SketchDrawer('20190623191235.jpg')

为方便阅读,可浏览如下代码完整截图。

百度一图,如下。

图片来自百度,若侵权则删

使用如上代码,绘制出素描画,如下:

再来一张合影

图片来自百度,若侵权则删

使用如上代码,绘制出素描画,如下:

若有需要源码的同学,私聊吧 ~

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();