数据CSV文件存取
CSV文件介绍
![在这里插入图片描述](https://img-blog.csdnimg.cn/a2e45b9a702c4708b96141592a7cc4b0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
数据写入CSV文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/9f193e47a8d84fdbaa78019c0a77335c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) 用到的方法是savetxt,同时解释了其余的四个参数的意义。
读入CSV文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/b801778d1ac144c98887affc799cec76.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
用到的方法是loadtxt,同时还有一些参数含义
CSV文件的局限性
![在这里插入图片描述](https://img-blog.csdnimg.cn/6f9069b17a764875b1759f556a94c98c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
多维数据的存取
tofile函数学习
![](https://img-blog.csdnimg.cn/a710487efecd4b618fe00c93daab622b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
例子
有分隔符的例子 ![在这里插入图片描述](https://img-blog.csdnimg.cn/eac3f2149fa34be9a6b7c39ce3b7bef7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) 无分隔符例子 ![在这里插入图片描述](https://img-blog.csdnimg.cn/5569ea5bcb88410fac86c790253025bc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
fromfile方法学习
![在这里插入图片描述](https://img-blog.csdnimg.cn/3b0159789ec547768645b3cf66dcfb0b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
例子
文本文件 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4e07ac9c3ef141e386d052ada085ad56.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) 二进制文件 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e604c864a46142b7961ad0aa9fa9347d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) 使用该方法时需要知道存入文件时数组的维度和元素类型,让以上的两种方法配合使用。可以通过元数据文件来存储额外信息。
NumPy便捷文件提取方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/cb5218b710f44b12bbd96047014ee166.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
例子
![在这里插入图片描述](https://img-blog.csdnimg.cn/ab3542de0a894e8b99070d28cb0bf417.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
NumPy随机库函数
random子库函数1
![在这里插入图片描述](https://img-blog.csdnimg.cn/c909e7a3e9944aebadd1827fb380f986.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
例子1
![在这里插入图片描述](https://img-blog.csdnimg.cn/22d202d63e25423a850b95cd8cbfabcf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/eb492f82eb744134a6f267a5f348a70e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) 通过设定和使用同一个随机数组,可以在测试的时候,产生相同的随即数组
random子库函数2
![在这里插入图片描述](https://img-blog.csdnimg.cn/fb875a64d95d4b5fae7043f2dc330bc3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
例子2
![在这里插入图片描述](https://img-blog.csdnimg.cn/f0ba92fbf1aa4a97b39d9bd03c8110ce.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/f30044ed2bab40f7a963e2c4c82358fc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
random子库函数3
![在这里插入图片描述](https://img-blog.csdnimg.cn/b92c4f34c94a42359a98c79f2e71da7a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
例子3
![在这里插入图片描述](https://img-blog.csdnimg.cn/48f6f469c9b645599c8c7ea82c392280.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
NumPy的统计函数
random的统计函数1
![在这里插入图片描述](https://img-blog.csdnimg.cn/e79bcae4caed460c9005f911a2692b59.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/4d8f172c416549a9b3946e3c4aa2f239.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) std是对a进行标准差,var是对a进行方差。
np,mean(a,axis = 1)
np.mean(a,axis = 0)
np.average(a,axis=0,weights=[10,5,1])
random的统计函数2
![在这里插入图片描述](https://img-blog.csdnimg.cn/69fc8485e50d4f11a5c96bfd59ce0563.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/2f94ea7fcfa24b55a442c4152f87b47a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
np.argmax(b)
np.unravel_index(np.argmax(b),b.shape)
np.ptp(b)
NumPy的梯度函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/f73c13659bb44e5cbaa1ac5e5c531ad9.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/381c7fbbf1814cfab5f38f34886984bc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/07b5d6acdb704f9981a486d8f3c39b68.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/4282754d9c77468a9f58e8e300701242.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) 二维计算梯度值 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9a56ba8a1eae486bbfc848ce7ca59ca4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) 梯度反应了元素的变化率。对于声音图像运算来说,起很大的作用
图像的数组表示
图像的RGB色彩模式
![在这里插入图片描述](https://img-blog.csdnimg.cn/6a70c79a52804bbe8187beb790154c1b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/44d6141dfd9d4b8e9c9bc95e8419c323.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/cbc49a2b46e5461ebef78f202646c8ec.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
图像的数组表示
![在这里插入图片描述](https://img-blog.csdnimg.cn/6dacbf3cb96548faafced1c64e1b8b5a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/bf068eae3a0c4669b83774853b7233e0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/bea01296cfb24dbbab474a0c4654c808.png)
图像的变换
![在这里插入图片描述](https://img-blog.csdnimg.cn/74a9105f073e44e59152993124f06bcd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/5d395f5bec924bb78631a223e493c76f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) 其中如上图中的第83行代码,可以将图片变成一个数组,b则是得出这个图片上的补值,就是由255,减去当前RGB的值。 86行中通过fromarray将其转换成一个图片的形式
![在这里插入图片描述](https://img-blog.csdnimg.cn/a2cfefe296784888aa439e15218fe41d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/7a4f4ae4fd9a440bb0de7441573a05b7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_14,color_FFFFFF,t_70,g_se,x_16)
convert(‘L’),可以将一个彩色的图片转换成一个灰度图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/04a4e634c45845d2b90a2ef60d2a822b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/02061856c42f4865bd3963a11b4a0e3b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_14,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/e4b2e45e28354dd195796079dc6e1faa.png) 将灰度值进行一个区间压缩 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c03ac51c21d64bbda8733ac3109f2007.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/debe8167b9ea48218331c3cfeaf6f0b8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_13,color_FFFFFF,t_70,g_se,x_16)
“图像的手绘效果”实例分析
手绘效果的特征
![在这里插入图片描述](https://img-blog.csdnimg.cn/339dc90626d04d3e93b997bf9ec5b8af.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
代码示例
![在这里插入图片描述](https://img-blog.csdnimg.cn/db61e07095db4983a5a42a6f962d9059.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16)
梯度重构
![在这里插入图片描述](https://img-blog.csdnimg.cn/5bcf7552f8a24219a6ec2422685a3ee7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) 从像素的灰度值,来间接的改变图片的明暗程度,立体效果通过添加虚拟深度值。深度值乘上方向梯度值来添加深度对方向梯度的影响因素,除以100是对深度值进行归一化
光源效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/d6aa93ce3d824076ba691e7a3e79b1cb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/4a8793b9d935487a8c81791d99df67a1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) dx、dy、dz就是在X、Y、Z轴上的投影,就相当于在三个轴上的长度
梯度归一化
![在这里插入图片描述](https://img-blog.csdnimg.cn/834da8ac6d8647c9b1406271bdaa917d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_20,color_FFFFFF,t_70,g_se,x_16) 这里的uni_x、uni_y、uni_z、实际上就是图像平面的单位法向量,上面的dx、dy、dz是光线的影响因子,相乘后投影到灰度梯度范围上
图像生成
![在这里插入图片描述](https://img-blog.csdnimg.cn/7bb8bf53a9a7489393753cad69e10abd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m95p-Q5ZWl5Lmf5LiN5Lya,size_17,color_FFFFFF,t_70,g_se,x_16) 将像素的灰度值剪切掉部分超出0-255的灰度值,保证输出正确
参考
https://www.bilibili.com/video/BV1p5411x71g?p=19
|