欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于Python将图片转换成素描图片

程序员文章站 2022-07-07 11:13:38
...

今天刚好学了Python的数据分析中的nupmy库,就写了个把图片转换成素描图片的Python脚本。
首先你的有Python的运行环境,那么我们就可以开始写了,我们可以用Python自带的IDLE也可以,不过的自己下载nupmy库Image;我比较推荐用的是anaconda,这是做科学计算数据分析之类的Python编译环境,这里面的库比较齐全,不用自己去下载。

(1)安装工具(使用anaconda的可以跳过)

pip install pillow
pip install numpy

(2)创建一个Python文件

基于Python将图片转换成素描图片
将这段代码粘贴进去


from PIL import Image
import numpy as np
a = np.asarray(Image.open('a20.jpg').convert('L')).astype('float')
depth=10.
grad=np.gradient(a)
grad_x,grad_y=grad
grad_x=grad_x*depth/100.
grad_y=grad_y*depth/100.

A=np.sqrt(grad_x**2+grad_y**2+1.)
uni_y=grad_y/A
uni_x=grad_x/A
uni_z=1./A

vec_el=np.pi/2.2
vec_az=np.pi/4.
dx=np.cos(vec_el)*np.cos(vec_az)
dy=np.cos(vec_el)*np.cos(vec_az)
dz=np.sin(vec_el)

b=255*(dx*uni_x+dy*uni_y+dz*uni_z)
b=b.clip(0,255)

im=Image.fromarray(b.astype('uint8'))
im.save('a8.jpg')


注意:代码里面第三行的a20.jpg是你想转换成素描图片的图片,最后一行的a8.jpg是程序执行完导出的素描照片。(特别注意:图片和Python脚本必须放在同一个文件夹,如果需要转换的文件不和Python脚本在同一个文件夹的话那么第三行的图片位置就必须用绝对路径。

那么就是下面这个样子得了
基于Python将图片转换成素描图片
这是原文件的图片:
基于Python将图片转换成素描图片

这个是执行Python脚本文件后的图片:
基于Python将图片转换成素描图片

oj8k []~( ̄▽ ̄)~*