在日常生活中,经常进行文件的读取。
有三种方法,先举一下,大家参考学习。
第一种方法是使用PIL模块读取数据。
import numpy as np
来自编号导入*
def load _ image _ pil (文件名,isFlatten=False ) :
导入操作系统
来自pil导入图像
import numpy as np
isExit=os.path.isfile(filename )
if isExit==False:
print ('无法打开!' )
img=image.open(filename )
保存# img.save (d :/Mn ist/convert _ image _ 11.jpg ' )文件
if isFlatten:
img_Flatten=NP.array(NP.array ) img,dtype=np.uint8).flatten ) )
返回img _ flatten,shape(img_Flatten ) )。
else:
img_arr=NP.array(img,dtype=np.uint8) ) ) )。
return img_arr,shape(img_arr ) ) ) ) ) ) )。
第二种方法使用skimage方法指示参数isFlatten是否显示分片。
defload_image_skimage(filename,isFlatten=False ) :
导入操作系统
from skimage import io
import numpy as np
isExit=os.path.isfile(filename )
if isExit==False:
print ('无法打开!' )
保存img=io.imread(filename ) ) io.save (filename,img )文件
if isFlatten:
img_Flatten=NP.array(NP.array ) img,dtype=np.uint8).flatten ) )
返回img _ flatten,shape(img_Flatten ) )。
else:
img_arr=NP.array(img,dtype=np.uint8) ) )。
return img_arr,shape(img_arr ) ) ) ) ) ) )。
第三,用tensorflow处理。
ef load _ image _ tensor flow (filename,isFlatten=False ) :
导入tensor flow as TF
import numpy as np
import matplotlib.pyplot as plt
image _ contents=TF.read _ file (filename ) #读取文件
image=TF.image.decode _ JPEG (image _ contents,channels=3) #解码JPEG
with tf.Session () as sess:
ss.run (TF.global _ variables _ initializer ()
img=sess.run((image ) ) img是三维数组
print(img.shape )输出数组形状
打印(img ) #打印数组
PLT.imshow(img ) #显示数组
# plt.show () )
PLT.save fig (d : (examples.jpg ) )功能非常强大,可以将PLT图直接绘制到图像文件中,便于稍后的组织学习。
return img,img.shape
---------------------请参阅
#data,size=load _ data _ pil (d :/Mn ist/default.jpg ',True ) ) ) ) ) ) ) ) )。
# print (数据,大小) )。
---------------------请参阅
data,size=load _ image _ tensor flow (d :/Mn ist/default.jpg ) ) ) ) )。
打印(数据,大小) )。
---------------------请参阅