每个人身边都有几个会画画的朋友,心中所想都能通过笔端绘出,真是羡煞我也。今天,给大家带来一个福音,用Python就可以给自己画素描,给山水画出的素描简直可以出素描书了,太漂亮了。

这张美丽的风景照片,经过素描之后是什么样的呢?

风景

素描之后,是不是有一种沧桑感~

风景素描

下面是可爱的颖宝,我也不知道当红的女星是谁,所以就找她了,不过素描之后不是那么好看了~

费神费力的素描照片,发现是不是只要几行代码就能搞定的?

代码如下,需要的可以自己试试哦。

from PIL import Image

import numpy as np

a = np.asarray(Image.open('10.jpg').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('10-1.jpg')

欢迎关注哦,这里还有一大批的宝藏待你发掘呢

python画素描画_画画了,画画了,几行Python就成一幅素描画相关推荐

  1. python人脸检测代码_如何用不到25行Python代码实现人脸检测

    本文我们会讲讲怎样利用不到 25 行 Python 代码和开源库 OpenCV,以很简单的方式实现人脸识别. 在正式开始前,先提以下两点小小的建议:先别急着跳到代码部分,最好在前文理解一下代码是干什么 ...

  2. python图片内容长度识别_教你如何用几行Python代码识别图片文字--就是这么简单!...

    今天给大家分享的主题是用百度的接口实现图片的文字识别. ​ 环境和配置要求 整体是用 Python 实现,所需要使用的第三方库包括 aip . PIL . keyboard . pyinstaller ...

  3. python画素描画_基于python实现把图片转换成素描

    这篇文章主要介绍了基于python实现把图片转换成素描,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 导语: 你是否还在为当时年少时没有选择自己的梦 ...

  4. 用python给女朋友画素描_用Python来给你的女朋友画一幅素描画!女朋友我就不发了!...

    我们知道一张色彩鲜艳的美照,看起来自然赏心悦目的,同样要是一张素描照,同样的效果看起来也是不错的. " 那么问题来了,你可以使用一只铅笔和一张画纸来完成一张素描照,但这花费的时间也不在少数, ...

  5. 用python画奥迪标志_不知道不 OK!53 个 Python 经典面试题详解

    作者 | Chris 翻译 | 苏本如,责编 | 夕颜 头图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 本文列出53个Python面试问题,并且提供了 ...

  6. python换脸教程_教你如何用200行Python代码“换脸”教程

    原标题:教你如何用200行Python代码"换脸"教程 本文将介绍如何编写一个只有200行的Python脚本,为两张肖像照上人物的"换脸". 这个过程可分为四步 ...

  7. python进入小学课堂_一统AI界的当红炸子鸡Python,这次要进入小学生课堂了!

    原标题:一统AI界的当红炸子鸡Python,这次要进入小学生课堂了! "Python语言要加入高考科目",听到这个消息,镁客君瞬间抖三抖,还好毕业早! 然后一搜消息,发现Pytho ...

  8. python字符串去头尾_悉尼大学某蒟蒻的Python学习笔记

    About me 本蒟蒻是悉尼大学计算机科学大一的学生,这篇博客记录了学习INFO1110这门课的一些心得,希望能对大家有帮助. To start with 因为计算机只能识别机器语言,所以我们需要编 ...

  9. python 进程生命周期_计算客户生命周期价值的python解决方案

    python 进程生命周期 By Lisa Cohen, Zhining Deng, Shijing Fang, and Ron Sielinski 由丽莎·科恩,志宁邓,石井方和罗恩Sielinsk ...

  10. python批量命名教程_《自拍教程69》Python 批量重命名音频文件,AV专家必备!

    本篇主要学习如何Python自定义模块并调用该模块,并重点介绍Python正则表达式的强大的文本处理能力. 案例故事:任何一款终端产品只要涉及音频输出,就肯定涉及音频的解码, 作为一名专业的AV (A ...

最新文章

  1. jspstudy启动mysql失败_MySql启动数据库设置初始密码
  2. 【PC工具】速度最快最好用的文件搜索工具:everything,更新文件内容搜索方法...
  3. 一份详尽的利用 Kubeadm部署 Kubernetes 1.13.1 集群指北
  4. 如何准备Java初级和高级技术的面试呢?
  5. qml tableview 滚动条加宽_qt qtableview 样式设置
  6. webdriver原理(自己做个记录)
  7. Oracle监控指标
  8. 安装CentOS报错dracut-initqueue timeout
  9. 渗透之——ASP Web提权
  10. 找电影最强攻略,最全资源站
  11. android上的自由软件,Android十款生活必备软件推荐
  12. 生成树协议(一)STP协议原理简介:广播风暴、MAC地址表震荡实验、STP工作原理、BPDU简介、STP故障处理
  13. Image caption领域的研究现状及分析
  14. python3网络爬虫(堆糖网)
  15. 【6.28校内test】T2 【音乐会】二重变革
  16. css鼠标悬浮显示效果(鼠标手势)
  17. 990php,音频牛绝配 DIY音频专用分立运放OP990初测
  18. k8s双节点集群搭建详细教程
  19. 流量来源分析 0801 0810 0820 流量数据重跑
  20. 三国华容道网页版来了

热门文章

  1. js知识梳理1:理解对象的属性特性
  2. 20165223 《JAVA程序设计》第三周学习总结
  3. SSAO + FXAA
  4. JavaScript学习笔记——DOM基础 2.1
  5. poj 3280 Cheapest Palindrome (dp)
  6. dubbo内核简介(附部分源码解读)
  7. 安装RabbitMQ无法访问(http://localhost:15672)解决方案
  8. Oracle数据库批量插入的问题
  9. mysql去除重复的数据
  10. C语言指针及C++引用