Python实现手绘功能,附代码!

您所在的位置:网站首页 自己在家如何画身高手绘 Python实现手绘功能,附代码!

Python实现手绘功能,附代码!

2024-07-09 11:27| 来源: 网络整理| 查看: 265

手绘图确实很好看,但对于手残党的敢敢,只能呵呵一笑,今天敢敢就用代码来实现手绘功能,把普通的图片转换为手绘图片。

效果

敢敢先上一张风景照。

现在呢,小X用python的程序对图片进行解析并转为话手绘类型。

是不是发现效果很不错呢?试了风景照后,小X想试试小X最爱的歌手杰伦的专辑封面照,不知道换成手绘后是什么样呢?emmm,对人像的转换感觉还有待提高。

代码

敢敢现在就直接上代码了,大家可以尝试各种自己喜欢的照片,通过python看看能得到什么样的手绘画。学过素描的同学觉得是自己画的好还是python画的好呢?

from PIL import Image import numpy as np #以下是图片的位置 a = np.asarray(Image.open(r'C:\Users\dylan\Desktop\1.png').convert('L')).astype('float') 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.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(r'C:\Users\dylan\Desktop\2.jpg')

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述 若有侵权,请联系删除



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3