python素描效果_python实现图片素描效果
代码如下:
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实现图片素描效果
代码如下: from PIL import Image #图像处理模块 import numpy as np a = np.asarray(Image.open("这里是原图片的路径&quo ...
- mac python 图_Python之图片OCR识别(Mac)
因为经常给朋友发的信息来源是一张图片,就想到了用Python处理下,就省的敲字了... 安装tesseract brew install tesseract 安装pytesseract pip3 in ...
- python两条曲线图片相似度_Python比较两个图片相似度的方法
本文实例讲述了Python比较两个图片相似度的方法.分享给大家供大家参考.具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一 ...
- python查看图片的源代码_python获取图片元数据的代码
exif-py是一个纯python实现的获取图片元数据的python库,官方下载地址: http://exif-py.svn.sourceforge.net/viewvc/exif-py/source ...
- python图像分析_python分析问题步骤Python比较两个图片相似度的方法
本文实例讲述了Python比较两个图片相似度的方法.分享给大家供大家参考.具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一 ...
- python 图片库_Python开发之千库网图片下载助手
千库网图片下载助手开发 我是一个很爱美的人,写文章喜欢带点插图. 另外我也有一个VX公众账号,写推文总需要点封面图片和插图的嘛,为了看起来更加美观和优雅. 为此我在网上找了写图片,但是直接通过右键下载 ...
- python三维矩阵出图_python读取图片的方式,以及将图片以三维数组的形式输出方法...
python 三维npy数组如何画成三维图片 画成三维图片? 你要是想要看空间分布的话画散点图就可以啊,用matplotlib 网页链接 要是那种各种弯曲的面,也是matplotlib 网页链接 再就 ...
- python给pdf加图片签名_Python生成个性签名图片获取GUI过程解析
这篇文章主要介绍了Python生成个性签名图片获取GUI过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先来看看程序运行的样子: 所以,程序 ...
- python图片转为二进制流_python将图片转为二进制-女性时尚流行美容健康娱乐mv-ida网...
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 mysql 5.7.9 lin ...
最新文章
- VC:其他控件(CProgressCtrl、CScrollBar、CDateTimeCtrl、CMonthCalCtrl)
- extjs 重设autoHeight
- Linux下安装Anaconda 详细过程 搭建python环境
- 【转】 不适用Sqrt函数开方,精度小于指定精度
- 超详细SQLMap使用攻略及技巧分享
- C# this关键字的3种用法
- 基于C8051F040单片机的CAN总线测试模式研究
- 前端控件JQuery Datatables使用——常用功能初始化
- Magento教程 10:如何修改网站文字?
- paip.找回密码功能流程设计(通过email)
- OpenMP简介和基本命令
- getch方法_C语言中getch()函数详解及简单实例
- NTP时间服务器安装配置详解
- hpsocket实现HTTP通信功能
- 贝壳雕刻者怎样才能创造出更好的作品
- 微信小程序在线考试系统 刷题考试小程序毕业设计 毕业论文 开题报告和效果图参考
- IntelliJ产品C盘瘦身
- 猎人X猎人手游如何在电脑上玩 猎人X猎人手游模拟器教程
- java皮丘 博客园,又一个设计工具 Framer X Preview
- 生成树个数(基尔霍夫矩阵)
热门文章
- jenkins java_具有WildFly,Arquillian,Jenkins和OpenShift的Java EE 7部署管道
- JPA @Embeddable和@Embedded
- java8hashmap_Java 8中的HashMap性能改进
- 通过函数式编程实现动态对话框处理程序
- maven 版本号插件_Maven内部版本号插件–用法示例
- jaxb 映射 空字段_JAXB和未映射的属性
- 从基于Maven的Web应用程序获取版本字符串
- 如何为JBoss Developer Studio 8设置集成和SOA工具
- EasyCriteria已演变为uaiCriteria。 新名称和更多功能
- JavaFX技巧4:总结