十几年前
麻雀在窗外朗朗读书
夕阳从窗缝悄悄溜入
窗内刻满“早”字的桌子上
横七竖八的摆放着肆意晃动的小脑袋
奋笔疾书的绘画着美术老师的作业
他们的笔下
小鸡有三对翅膀就能飞的更高
十几年后
窗外早已不闻鸟语
夕阳也不再等我回家
窗内的格子间里
乱七八糟的放置着裹腹的残羹剩饭
指尖滑动跳跃在造型各异的键盘上
他们的脑中
一加一可以等于老板想要的任何数
年轻真好
君不见,执花仗剑,春风妒少年
嘿,读到这里
你以为我小时候编的答案是诗人吗?
不,是画家
有问题吗?
没有问题
这叫出其不意
谁脑子里还没点天马行空的想法了
今天再年轻一把,用代码完成小时候的绘画梦!
目标:将照片素描化。
操作:目录 PIC_DIR 下有一张照片 pic.jpg,照片为正常彩色照片。读取该照片,修改图像灰度的梯度值。
from PIL import Image
import numpy as np
PIC_DIR = 'C:\\Users\\zorrolzhang\\Desktop\\'
PIC_NAME = 'pic.jpg'
def SimpleDraw() :
a = np.asarray(Image.open(PIC_DIR + PIC_NAME).convert('L'))
depth = 10. # (0-100)
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_x = grad_x/A
uni_y = grad_y/A
uni_z = 1./A
vec_el = np.pi/2. # 光源的俯视角度,弧度值
vec_az = np.pi/4. # 光源的方位角度,弧度值
dx = np.cos(vec_el)*np.cos(vec_az) #光源对x 轴的影响
dy = np.cos(vec_el)*np.sin(vec_az) #光源对y 轴的影响
dz = np.sin(vec_el) #光源对z 轴的影响
b = 255*(dx*uni_x + dy*uni_y + dz*uni_z) #光源归一化
b = b.clip(0,255)
im = Image.fromarray(b.astype('uint8')) #重构图像
im.save(PIC_DIR + 'shouhui_' + PIC_NAME)
print("success!!!")
SimpleDraw()
效果:
最后,点赞收藏支持一下~
也欢迎关注我的个人公众号【头发头发等等我】