# 导入绘图库
from PIL import Image
#导入科学计算库
import numpy as np #封装一个图像处理工具类
class TestNumpy(object):def photo2paint(self,img_url):#读取图片,asarray()转矩阵    convert('L')转变成像素化     astype()转元素类型my_photo = np.asarray(Image.open(img_url).convert('L')).astype('float')print(my_photo)print(my_photo.dtype)print(my_photo.shape)print(my_photo.size)print('矩阵是 {} 维度'.format(my_photo.ndim))print('元素 {} 字节'.format(my_photo.itemsize))#设置灰度阈值   范围是(0-100)depth = 10#将灰度系数映射到numpygrad = np.gradient(my_photo)#获取坐标grad_x,grad_y = grad#分别处理,淡化灰度grad_x = grad_x * depth / 300grad_y = grad_y * depth / 300#设置阿尔法值#设置坐标范围A = np.sqrt(grad_x**2 + grad_y**2 + 1)#重新赋值,进行光源化处理,避免像素缺失uni_x = grad_x/Auni_y = grad_y/Auni_z = 1/A#灰度光源设置   角度/弧度vec_el = np.pi/2.2vec_az = np.pi/4#设置x轴和y轴dx = np.cos(vec_el) * np.cos(vec_az)  #余玄dy = np.cos(vec_el) * np.sin(vec_az)#设置z轴dz = np.sin(vec_el)#设置byte值b = 255 * (dx*uni_x+dy*uni_y+dz*uni_z)#光源归一化b = b.clip(0,255)#声明图像类对象im = Image.fromarray(b.astype('uint8'))#保存图像im.save('./test_new.jpg')if __name__ == "__main__":tn = TestNumpy()tn.photo2paint('./test_numpy.jpg')

转载于:https://www.cnblogs.com/justblue/p/10482403.html

python科学计算库numpy和绘图库PIL的结合,素描图片(原创)相关推荐

  1. 一文带你熟悉简单实用的Python科学计算库NumPy

    Python科学计算库NumPy 安装 数组的创建 array创建 **arange** 创建 **随机数创建** 方法numpy.random.random(size=None) 方法numpy.r ...

  2. Python 科学计算库 Numpy 准备放弃 Python 2 了

    Numpy 是 Python 的一个科学计算库,提供了矩阵运算的功能,一般与 Scipy.matplotlib 一起使用. 今天 Numpy 的 GitHub 主页上发文称,Numpy 库准备从 20 ...

  3. Python 科学计算库 Numpy(一)—— 概述

    目录 一 Numpy(Numerical Python) 1. Numpy 是什么 2. Numpy 的主要用途 二 Numpy 数组 VS Python 列表 三 Numpy 数据类型和属性 1. ...

  4. 01、python数据分析与机器学习实战——Python科学计算库-Numpy

    深度学习--学习目录 NumPy介绍 NumPy系统是Python的一种开源的数值计算扩展. 这种工具可用来存储和处理大型矩阵, 比Python自身的嵌套列表(nested list structur ...

  5. Python科学计算库numpy中的add运算

    闲言碎语不多讲,直接上代码. >>> import numpy as np >>> np.add.accumulate([1,2,3]) # 累加 array([1 ...

  6. Python 科学计算库 Numpy (二) —— 索引及切片

    目录 1. 索引及切片 (1)通过下标以及内置函数进行索引切片 (2)使用冒号分隔参数进行切片索引 (3)对部分元素进行索引并切片 (4)对多维数组进行索引切片 2. 高级索引 (1)整数数组索引 ( ...

  7. 唐宇迪学习笔记1:Python环境安装、Pytho科学计算库——Numpy

    目录 一.AI数据分析入门 ​1.案例来源 2.Python环境配置(Python3) Python的安装 Python库安装工具 Jupyter Notebook 二.Python科学计算库--Nu ...

  8. numpy不用科学记数发 python_Python科学计算库Numpy常用的函数使用

    林小森博客: Python科学计算库Numpy常用的函数使用 - 林小森​www.linxiaosen.com Numpy具有强大的计算功能,本文介绍Numpy常用的函数,可以有效的提高工作效率. 首 ...

  9. 初识 Python 科学计算库之 NumPy(创建多维数组对象)

    文章目录 参考 描述 NumPy 特点 获取 导入 多维数组对象 np.array() np.asarray() 范围 随机 概览 np.random.randn() np.random.normal ...

最新文章

  1. PHP如何识别系统语言或浏览器语言
  2. HDU2571:命运(简单dp)
  3. 使用Angular可重用Component思路实现一个自带图标(icon)的input控件
  4. mysql事务日志备份_事务日志备份 (SQL Server)
  5. 分段显示 linux_ArchAudit:一款在 Arch Linux 上检查易受攻击的软件包的工具 | Linux 中国...
  6. GX works2 中的块的创建与使用方法
  7. 结构体与共用体07 - 零基础入门学习C语言59
  8. git remote命令入门
  9. php 获取图片、swf的尺寸大小
  10. 2.项目介绍,数据库迁移(code first)
  11. 管理新语:说说工作的主动权
  12. Tomcat原理整理
  13. 微信小程序实现视频功能(一):视频上传
  14. 人月神话札记:画蛇添足
  15. 计算机开题报告课题来源,开题报告课题来源该怎么写
  16. 众包中真值推断的随机猜测和任务难度建模
  17. emeditor的快捷键
  18. spark(day05)
  19. 学习OpenCV3:创建一张空白的图片并画线
  20. 分而治之 (25 分)

热门文章

  1. 参加远光面试反思--阴沟翻船记
  2. Java从接触到放弃(二十四)---类加载
  3. Springboot毕设项目宠物医院预约挂号系统g8yr6(java+VUE+Mybatis+Maven+Mysql)
  4. 机器学习 day7 kmeans 聚类算法
  5. 上海交大计算机网络基础,上海交大计算机网络基础教程
  6. 5-3 FacetGrid与调色盘
  7. 排序算法--快速排序(QuickSort)、 3区快速排序(3 Way QuickSort)原理、适用场景及代码示例
  8. 负载均衡手段之DNS轮询
  9. lisp调用qleader端点_CAD命令大全的.doc
  10. 物联网空开价格_智慧物联网远程空开断路器