代码如下:

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实现图片素描效果相关推荐

  1. python 素描化图像_python实现图片素描效果

    代码如下: from PIL import Image #图像处理模块 import numpy as np a = np.asarray(Image.open("这里是原图片的路径&quo ...

  2. mac python 图_Python之图片OCR识别(Mac)

    因为经常给朋友发的信息来源是一张图片,就想到了用Python处理下,就省的敲字了... 安装tesseract brew install tesseract 安装pytesseract pip3 in ...

  3. python两条曲线图片相似度_Python比较两个图片相似度的方法

    本文实例讲述了Python比较两个图片相似度的方法.分享给大家供大家参考.具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一 ...

  4. python查看图片的源代码_python获取图片元数据的代码

    exif-py是一个纯python实现的获取图片元数据的python库,官方下载地址: http://exif-py.svn.sourceforge.net/viewvc/exif-py/source ...

  5. python图像分析_python分析问题步骤Python比较两个图片相似度的方法

    本文实例讲述了Python比较两个图片相似度的方法.分享给大家供大家参考.具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一 ...

  6. python 图片库_Python开发之千库网图片下载助手

    千库网图片下载助手开发 我是一个很爱美的人,写文章喜欢带点插图. 另外我也有一个VX公众账号,写推文总需要点封面图片和插图的嘛,为了看起来更加美观和优雅. 为此我在网上找了写图片,但是直接通过右键下载 ...

  7. python三维矩阵出图_python读取图片的方式,以及将图片以三维数组的形式输出方法...

    python 三维npy数组如何画成三维图片 画成三维图片? 你要是想要看空间分布的话画散点图就可以啊,用matplotlib 网页链接 要是那种各种弯曲的面,也是matplotlib 网页链接 再就 ...

  8. python给pdf加图片签名_Python生成个性签名图片获取GUI过程解析

    这篇文章主要介绍了Python生成个性签名图片获取GUI过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先来看看程序运行的样子: 所以,程序 ...

  9. python图片转为二进制流_python将图片转为二进制-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页  > 高级搜索 mysql 5.7.9 lin ...

最新文章

  1. VC:其他控件(CProgressCtrl、CScrollBar、CDateTimeCtrl、CMonthCalCtrl)
  2. extjs 重设autoHeight
  3. Linux下安装Anaconda 详细过程 搭建python环境
  4. 【转】 不适用Sqrt函数开方,精度小于指定精度
  5. 超详细SQLMap使用攻略及技巧分享
  6. C# this关键字的3种用法
  7. 基于C8051F040单片机的CAN总线测试模式研究
  8. 前端控件JQuery Datatables使用——常用功能初始化
  9. Magento教程 10:如何修改网站文字?
  10. paip.找回密码功能流程设计(通过email)
  11. OpenMP简介和基本命令
  12. getch方法_C语言中getch()函数详解及简单实例
  13. NTP时间服务器安装配置详解
  14. hpsocket实现HTTP通信功能
  15. 贝壳雕刻者怎样才能创造出更好的作品
  16. 微信小程序在线考试系统 刷题考试小程序毕业设计 毕业论文 开题报告和效果图参考
  17. IntelliJ产品C盘瘦身
  18. 猎人X猎人手游如何在电脑上玩 猎人X猎人手游模拟器教程
  19. java皮丘 博客园,又一个设计工具 Framer X Preview
  20. 生成树个数(基尔霍夫矩阵)

热门文章

  1. jenkins java_具有WildFly,Arquillian,Jenkins和OpenShift的Java EE 7部署管道
  2. JPA @Embeddable和@Embedded
  3. java8hashmap_Java 8中的HashMap性能改进
  4. 通过函数式编程实现动态对话框处理程序
  5. maven 版本号插件_Maven内部版本号插件–用法示例
  6. jaxb 映射 空字段_JAXB和未映射的属性
  7. 从基于Maven的Web应用程序获取版本字符串
  8. 如何为JBoss Developer Studio 8设置集成和SOA工具
  9. EasyCriteria已演变为uaiCriteria。 新名称和更多功能
  10. JavaFX技巧4:总结