三分钟给女神画张素描照

本文通过Python代码实现了一种照片转素描的效果,利用图像处理技术改变灰度梯度,模拟光线作用,将一张普通的彩色照片转化为艺术感十足的素描画。作者回忆起少年时代的创作梦想,并通过编程重拾那份纯粹的热爱,展现了技术与艺术的完美结合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

十几年前

麻雀在窗外朗朗读书

夕阳从窗缝悄悄溜入

窗内刻满“早”字的桌子上

横七竖八的摆放着肆意晃动的小脑袋

奋笔疾书的绘画着美术老师的作业

他们的笔下

小鸡有三对翅膀就能飞的更高

十几年后

窗外早已不闻鸟语

夕阳也不再等我回家

窗内的格子间里

乱七八糟的放置着裹腹的残羹剩饭

指尖滑动跳跃在造型各异的键盘上

他们的脑中

一加一可以等于老板想要的任何数

年轻真好

君不见,执花仗剑,春风妒少年

嘿,读到这里

你以为我小时候编的答案是诗人吗?

不,是画家

有问题吗?

没有问题

这叫出其不意

谁脑子里还没点天马行空的想法了

图片


今天再年轻一把,用代码完成小时候的绘画梦!

目标:将照片素描化。

操作:目录 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()

效果:

图片

图片

最后,点赞收藏支持一下~

也欢迎关注我的个人公众号【头发头发等等我】

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值