Python读取数据文件,python读取的文件内容如何显示出来

  Python读取数据文件,python读取的文件内容如何显示出来

  Python中操作图像的方法有opencv、matplotlib和PIL。

  (一) opencv:导入cv2 as cv # Load Img=cv . im read(image path)# shape=(height,width,channel)h,w,c=Img . shape # showcv . im show( window _ title ,img)# savecv.imwrite(savepath,Img)(二) matplotlib:导入matplotlib.pyplotlib as PLT # PLT用于显示图片导入matplotlib.image as mpig # mpig用于读取图片导入numpy as np c=img . shape # show PLT . im show(img)# show picture PLT . axis( off )#不显示坐标轴plt.show()# save#适用于保存matplotlib绘制的任何图像,相当于一个截屏plt.savefig (fig _ cat.png )。 请注意:

  * PLT中图片的数据类型。IM显示(图片)可以是np.array

  * mpimg提供加载图像函数imread和保存图像函数imsave。

  * plt.savefig功能可以保存图中显示的图像。

  添加mpimg.imsave()和plt.savefig()以使用demo。

  Matplotlib扩展:1。从scipy导入的图像缩放和显示misc Lena _ new _ SZ=misc . im resize(img,0.5) #如果第二个参数是整数,则是百分比;如果是tuple,那么扩展输出图像PLT . im show(img _ new _ SZ)PLT . axis( off )PLT . show()matplotlib:2的大小。将np.array另存为图像,直接将np.array # 2.1 np.array=image文件从scipy导入misc misc . im save( img_new_sz . png ,Img _ new _ SZ) 从scipy导入misc # load imagelena=misc . im read( Lena . png )# type numpy . ndarray type(Lena)# Lena . shape,lena.dtype # 2.2 np.array=np数据文件将numpy导入为npnp。npyimg=NP . load( img _ new _ SZ . npy )#读取之前保存的数组注意:np.array数据,可以直接保存在磁盘上,扩展名为。npy由np.save函数直接恢复,由NP.load函数直接恢复;Scipy.misc为numpy.array格式的图像提供了一个处理函数,尤其是misc.imsave函数,可以直接将np.array数据保存到图像文件中。

  (C) PIL加载并显示图像(*)

  from pilimportimage # loadim=image . open( cat . jpg )# showim . show() #返回图像的大小w,h=(480,360)w,H=img . size # pil . jpegimageplugin . jpegimagefiletype(img)#直接调用image类的save方法img.save(new_cat.png )加载并显示图像(* *)

  从pil导入图片导入matplotlib . py plot as pltmg=image . open(/home/王浩/pictures/001 . jpg )PLT . figure( head )PLT . imshow(img)PLT . show()PIL图片和numpy数组之间的转换

   # PIL Image=np.array#也可以用np.asarray(im),区别是# np.array()是深度拷贝,np.asarray()是轻拷贝 im_array=np.array(im) 这里用matplotlib.image读入图片数组。注意:这里是PIL。图像数据为uinit8类型,范围为0-255,需要转换;导入matplotlib.image为mpimgfrompil导入image img=mpig . im read( cat . jpg )#这里读取的数据是float32类型,范围是0-1#。方法转换后显示效果不好。img=Image . from array(NP . uint 8(img * 255))img . show()注意:numpy转换成PIL图像后显示效果很差,最好是转换numpy后用matplotlib显示。

  (四) 总结当你可以选择使用哪个图像库来最终显示图像的时候,我个人认为利用matplotlib库的集成功能直接加载显示图像(来自matplotlib的image.imread或者来自PIL的Image.open)比较好;

  在内存中保存整个结果为图片时,优先转换为np.array,用scipy.misc保存为图片;

  待补充:如果对图像进行各种绘图相关的操作,有什么更好的选择可以让加载和绘制图像更容易并最终保存?

  参考:python显示图片。Python读取并显示图片。Python使用scipy和numpy操作来处理图像。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: