上一篇地址:http://blog.csdn.net/yz764127031/article/details/72597951
一.numpy数据的存储
numpy使用的时候,一般是用ipython进行交互式处理,也就是需要将数据加载到内存。
自然就涉及到了数据的存储。
一种常用的方式就是使用CSV,CSV是一种常见的文件格式,用来存储批量文件。
numpy提供了便利的接口来生成和读取CSV格式的文件。
但是CSV文件只适用于一维,二维的数据。
二.numpy常用函数库
三.图像手绘效果代码
说明:将图片的像素矩阵读入,处理后,生成新的图像矩阵,然后写入新的图片文件
from PIL import Image
import numpy as np
a = np.asarray(Image.open('./beijing.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)
im = Image.fromarray(b.astype('uint8')) #重构图像
im.save('./beijingHD.jpg')