有趣的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')
为方便阅读,可浏览如下程式码完整截图。

百度一图,如下。
图片来自百度,若侵权则删
使用如上程式码,绘制出素描画,如下:

再来一张合影
图片来自百度,若侵权则删
使用如上程式码,绘制出素描画,如下:

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