python科学计算库numpy和绘图库PIL的结合,素描图片(原创)
# 导入绘图库 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的结合,素描图片(原创)相关推荐
- 一文带你熟悉简单实用的Python科学计算库NumPy
Python科学计算库NumPy 安装 数组的创建 array创建 **arange** 创建 **随机数创建** 方法numpy.random.random(size=None) 方法numpy.r ...
- Python 科学计算库 Numpy 准备放弃 Python 2 了
Numpy 是 Python 的一个科学计算库,提供了矩阵运算的功能,一般与 Scipy.matplotlib 一起使用. 今天 Numpy 的 GitHub 主页上发文称,Numpy 库准备从 20 ...
- Python 科学计算库 Numpy(一)—— 概述
目录 一 Numpy(Numerical Python) 1. Numpy 是什么 2. Numpy 的主要用途 二 Numpy 数组 VS Python 列表 三 Numpy 数据类型和属性 1. ...
- 01、python数据分析与机器学习实战——Python科学计算库-Numpy
深度学习--学习目录 NumPy介绍 NumPy系统是Python的一种开源的数值计算扩展. 这种工具可用来存储和处理大型矩阵, 比Python自身的嵌套列表(nested list structur ...
- Python科学计算库numpy中的add运算
闲言碎语不多讲,直接上代码. >>> import numpy as np >>> np.add.accumulate([1,2,3]) # 累加 array([1 ...
- Python 科学计算库 Numpy (二) —— 索引及切片
目录 1. 索引及切片 (1)通过下标以及内置函数进行索引切片 (2)使用冒号分隔参数进行切片索引 (3)对部分元素进行索引并切片 (4)对多维数组进行索引切片 2. 高级索引 (1)整数数组索引 ( ...
- 唐宇迪学习笔记1:Python环境安装、Pytho科学计算库——Numpy
目录 一.AI数据分析入门 1.案例来源 2.Python环境配置(Python3) Python的安装 Python库安装工具 Jupyter Notebook 二.Python科学计算库--Nu ...
- numpy不用科学记数发 python_Python科学计算库Numpy常用的函数使用
林小森博客: Python科学计算库Numpy常用的函数使用 - 林小森www.linxiaosen.com Numpy具有强大的计算功能,本文介绍Numpy常用的函数,可以有效的提高工作效率. 首 ...
- 初识 Python 科学计算库之 NumPy(创建多维数组对象)
文章目录 参考 描述 NumPy 特点 获取 导入 多维数组对象 np.array() np.asarray() 范围 随机 概览 np.random.randn() np.random.normal ...
最新文章
- PHP如何识别系统语言或浏览器语言
- HDU2571:命运(简单dp)
- 使用Angular可重用Component思路实现一个自带图标(icon)的input控件
- mysql事务日志备份_事务日志备份 (SQL Server)
- 分段显示 linux_ArchAudit:一款在 Arch Linux 上检查易受攻击的软件包的工具 | Linux 中国...
- GX works2 中的块的创建与使用方法
- 结构体与共用体07 - 零基础入门学习C语言59
- git remote命令入门
- php 获取图片、swf的尺寸大小
- 2.项目介绍,数据库迁移(code first)
- 管理新语:说说工作的主动权
- Tomcat原理整理
- 微信小程序实现视频功能(一):视频上传
- 人月神话札记:画蛇添足
- 计算机开题报告课题来源,开题报告课题来源该怎么写
- 众包中真值推断的随机猜测和任务难度建模
- emeditor的快捷键
- spark(day05)
- 学习OpenCV3:创建一张空白的图片并画线
- 分而治之 (25 分)
热门文章
- 参加远光面试反思--阴沟翻船记
- Java从接触到放弃(二十四)---类加载
- Springboot毕设项目宠物医院预约挂号系统g8yr6(java+VUE+Mybatis+Maven+Mysql)
- 机器学习 day7 kmeans 聚类算法
- 上海交大计算机网络基础,上海交大计算机网络基础教程
- 5-3 FacetGrid与调色盘
- 排序算法--快速排序(QuickSort)、 3区快速排序(3 Way QuickSort)原理、适用场景及代码示例
- 负载均衡手段之DNS轮询
- lisp调用qleader端点_CAD命令大全的.doc
- 物联网空开价格_智慧物联网远程空开断路器