1. python中将Numpy数组保存为图像的方法:
方法1: import scipy.misc
scipy.misc.imsave(‘resultImg.jpg’, numpyMat)
注意:上面的转换将最小值min转换为黑色,将最大值转换为白色,如果需要得到精确的灰度或者RGB值,应该使用下面的方 式:
import scipy.misc
scipy.misc.toimage(numpyMat, cmin = 0, cmax =(自己设定的值)).save(‘resultImg.jpg’)
方法2:from PIL import Image
outImg = Image.fromarray(numpyMat)
outImg.save(‘resultImg.jpg’)
方法3:使用struct中的pack和unpack进行打包,根据格式的具体报文内容进行写图;
方法4:import matplotlib
matplotlib.image.imsave(‘resultImg.jpg’, numpyMat)
方法5:import matplotlib.pyplot as plt
plt.imshow(numpyMat)
plt.savefig(‘resultImg.jpg’),
注意:这里将保存plot图而不是图像本身。
方法6:使用opencv中的函数,具体如下:
import cv2
import numpy as np
cv2.imwrite(‘resultImg.jpg’, numpyMat)
总结:通过对上面的实现过程进行分析,可以看到大部分的方法实现都是采用的第三方的库,只有第3种方法是采用自己的代码实现,具体过程需要对图像的格式header等有深入的了解。
2. Numpy类型矩阵的形状重塑:
Img_mat = Img_mat.reshape((row, cols));
3. python中将Numpy矩阵变为一个行矩阵:
Img_mat.reshape(-1): 结果是一个一行的一维向量;
Img_mat.reshape(-1,1): 结果是一个一列的二维向量;
4. python中创建一个3行4列的二维全0数组或全1的无符号8位整型数组:
arr = np.zeros((3,4), dtype = ’uint8’);
arr = np.ones((3,4), dtype = ’uint8’);
5. Python 中从一个文件调用另外一个文件的方法:例如从b.py调用fun函数到a.py中,可以使用下面的语句(在a.py中):
import b
xxx = b.func()
6. python中aa[::2,::,2]的意识是每隔两行每隔两列进行抽样,[1::2,1::,2]是指从第二行和第二列开始每隔两行和每隔两列进行采样。
7. a//b的结果是:floor除法,即结果是不大于小数结果的最大整数。
8. python中*args和**kwargs用法: