python实现图片素描效果


Posted in Python onSeptember 26, 2020

代码如下:

from PIL import Image  #图像处理模块
import numpy as np

a = np.asarray(Image.open("这里是原图片的路径").convert('L')).astype('float')  
#将图像以灰度图的方式打开并将数据转为float存入np中

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)  #clip函数将区间外的数字剪除到区间边缘

im = Image.fromarray(b.astype('uint8')) #重构图像
im.save("这里是输出图片的路径")

检验一下效果:

from PIL import Image  #图像处理模块
import numpy as np


# 将图像以灰度图的方式打开并将数据转为float存入np中
a = np.asarray(Image.open("D://Python//图片转素描//4.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)  # clip函数将区间外的数字剪除到区间边缘

im = Image.fromarray(b.astype('uint8')) # 重构图像
im.save("D://Python//图片转素描//4_2.jpg")

原图:

python实现图片素描效果

转换后

python实现图片素描效果

但是不适合那些依赖光影变换效果的图片,比如我最爱的百里守约就很糟糕

python实现图片素描效果

python实现图片素描效果

以上就是python实现图片素描效果的详细内容,更多关于python 图片素描的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
跟老齐学Python之玩转字符串(2)更新篇
Sep 28 Python
Python实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
详解Python读取配置文件模块ConfigParser
May 11 Python
python通过getopt模块如何获取执行的命令参数详解
Dec 29 Python
python url 参数修改方法
Dec 26 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
tensorflow模型保存、加载之变量重命名实例
Jan 21 Python
PyTorch中的C++扩展实现
Apr 02 Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 Python
Django 实现图片上传和下载功能
Dec 31 Python
python 通过使用Yolact训练数据集
Apr 06 Python
Elasticsearch 聚合查询和排序
Apr 19 Python
Python:__eq__和__str__函数的使用示例
Sep 26 #Python
Kmeans均值聚类算法原理以及Python如何实现
Sep 26 #Python
python实现sm2和sm4国密(国家商用密码)算法的示例
Sep 26 #Python
Python爬取股票信息,并可视化数据的示例
Sep 26 #Python
如何利用python发送邮件
Sep 26 #Python
Python 测试框架unittest和pytest的优劣
Sep 26 #Python
浅析python函数式编程
Sep 26 #Python
You might like
世界上第一台立体声收音机
2021/03/01 无线电
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
vue编写简单的购物车功能
2021/01/08 Vue.js
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
使用Python设计一个代码统计工具
2018/04/04 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
食堂个人先进事迹
2014/01/22 职场文书
教师业务学习制度
2014/01/25 职场文书
党员公开承诺事项
2014/03/25 职场文书