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代码写的12306订票代码
Dec 20 Python
Python中使用urllib2模块编写爬虫的简单上手示例
Jan 20 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
May 18 Python
关于Python的一些学习总结
May 25 Python
python+splinter实现12306网站刷票并自动购票流程
Sep 25 Python
Python 将json序列化后的字符串转换成字典(推荐)
Jan 06 Python
Python如何实现的二分查找算法
May 27 Python
Python flask路由间传递变量实例详解
Jun 03 Python
python实现将中文日期转换为数字日期
Jul 14 Python
Python如何读取、写入CSV数据
Jul 28 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
浅谈Python 钉钉报警必备知识系统讲解
Aug 17 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
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
Python实现的科学计算器功能示例
2017/08/04 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
Python3 log10()函数简单用法
2019/02/19 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python绘制玫瑰的实现代码
2020/03/02 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
家长给幼儿园的表扬信
2014/01/09 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
自立自强的名人事例
2014/02/10 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
个人优缺点总结
2015/02/28 职场文书
V Rising 服务器搭建图文教程
2022/06/16 Servers