python显示图片的函数,python读取图片属性

  python显示图片的函数,python读取图片属性

  本文主要介绍python中不同函数读取图像格式的差异。通过示例代码详细介绍,对您的学习或工作有一定的参考价值。有需要的朋友可以参考一下。

  00-1010前言:关于uint8和float数据一、skimage.io二。imageio补充:python将图像处理成uint8格式摘要

  

目录

  为了节省存储空间,图像通常以特殊的数据类型——uint8(8位无符号整数)存储。以这种方式存储的图像称为8位图像。

  Im将灰度图像存储在8位矩阵中,当它是RGB图像时,它存储在8位RGB矩阵中。

  所以通过matlab和各种python包(skimage,imageio)读取的图像的数据类型都是uint8,在数据操作中,如果不转换成double格式,可能会导致计算溢出。

  总之,先记住一句话:uint8用于存储和显示(imshow),double用于计算。

  

前言:关于uint8和float型数据

  读取方法:skimage.io.imread(图片地址)

  返回的格式是uint8格式的数组。

  

一、skimage.io。

  读取方法:imageio.imread (image address )。

  返回的格式是imageio.core.util.Image类,其中的元素也是uint8格式。

  以上两种都可以通过skimage.img_as_float转换成float64格式的图像。

  该公式被转换为:

  转换前后元素对比:67(67(uint 8)0.2627(float 64 64)。

  在程序中的相互转换:

  1)将uint8转换为float

  转换为float64。只需要使用skimage.img_as_float()函数即可。

  如果需要转换成float32格式,只需添加:astype(np.float32)到float64。

  示例:

  Img=skimage.img_as_float(img)#从uint8转换为float364。

  Img=skimage.img _ as _ float (img)。astype (np.float32) #从uint8转换为float32

  2)将float64转换为uint8

  目前来看,这是不失真图像就能达到目的的方法:分别使用skimage包和numpy中的函数进行转换。如果直接用numpy的函数进行转换,图像会失真。

  Img=skimage.img_as_float(img)#首先转换成uint16的格式。

  Img=np.uint8(img)#转换成uint8格式。

  总结:从上面的转换可以看出,如果可以使用图形处理包的格式转换功能,就不要使用numpy中的格式转换功能,否则会出现各种问题。

  附:不同数据类型对比:

  数据类型rangeuint80到255uint160到65535uint320到232float-1到1或0到1int8-128到127int16-32768到32767int32-231到231 - 1

  

二、imageio

  在python图像处理过程中,遇到的RGB图像的值在0-255之间。为了更好地处理图像,通常将图像值转换为0-1之间的值。

  这个过程是将uint8类型的图像转换为float类型的过程。img.astype(uint8)/255

  float类型的取值范围是-1到1或0到1。

  

补充:python处理图像转化为uint8格式

  关于python中不同函数读取图像格式的区别,本文到此结束。更多关于python读取图像格式的区别,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

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

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