img.resize这个函数img.resize((width, height),Image.ANTIALIAS)
第二个参数:
Image.NEAREST :低质量
Image.BILINEAR:双线性
Image.BICUBIC :三次样条插值
Image.ANTIALIAS:高质量
numpy.array(object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0)
作用:创建一个数组
参数说明:
object:数组
公开数组接口的任何对象,__array__方法返回数组的对象,或任何(嵌套)序列。
dtype : 数据类型,可选
数组所需的数据类型。如果没有给出,那么类型将被确定为保持序列中的对象所需的最小类型。此参数只能用于“upcast”数组。对于向下转换,请使用.astype(t)方法。
copy : bool,可选
如果为true(默认值),则复制对象。否则,只有当__array__返回副本,obj是嵌套序列,或者需要副本来满足任何其他要求(dtype,顺序等)时,才会进行复制。
order : {‘K’,‘A’,‘C’,‘F’},可选
指定阵列的内存布局。如果object不是数组,则新创建的数组将按C顺序排列(行主要),除非指定了’F’,在这种情况下,它将采用Fortran顺序(专业列)。如果object是一个数组,则以下成立。
当copy=False出于其他原因而复制时,结果copy=True与对A的一些例外情况相同,请参阅“注释”部分。默认顺序为“K”。
subok : bool,可选
如果为True,则子类将被传递,否则返回的数组将被强制为基类数组(默认)。
ndmin : int,可选
指定结果数组应具有的最小维数。根据需要,将根据需要预先设置形状。
返回值:out:ndarray
img_array.reshape
更改行与列
.使用astype函数转换dtype
使用“对象.astype()”。
float_arr=arr.astype(np.float64)
#如果将浮点数转换成整数,则小数部分将会被截断
np.multiply()函数
函数作用
数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致
from PIL import Image#导入图像库
import tensorflow as tf#导入tensorflow
import numpy as np#导入numpy
def pre_dic(pic_path):
img = Image.open(pic_path)#打开图片
reIm = img.resize((28, 28), Image.ANTIALIAS)
img_array = np.array(reIm.convert('L'))
nm_array = img_array.reshape([1, 784])
nm_array = nm_array.astype(np.float32)
img_ready = np.multiply(nm_array, 1.0/255.0)
return img_ready
if __name__ == '__main__':
array = pre_dic('2.bmp')
with open('input_0.h', 'w') as f:
f.write(str(array.tolist()))