python 灰度图像转彩色,基于python的数字图像处理

  python 灰度图像转彩色,基于python的数字图像处理

  本文主要介绍python数字图像处理的数据类型和色彩空间转换的例子。有需要的朋友可以借鉴一下,希望能有所帮助。祝你进步很大,早日升职加薪。

  00-1010 1.图像数据类型和转换1。unit8到float2,float到uint8 2。色彩空间及其转换示例:rgb到灰度图像其他转换示例:rgb到hsv

  

目录

  在skimage中,图片是一个简单的numpy数组。数组有多种数据类型,可以相互转换。下表显示了这些数据类型和值范围:

  typerangeuint 80 to 255 uint 160 to 65535 uint 320 to 232 float-1t 0或0t 0 in t8-128 to 127 int 16-32768 to 32767 int 32-231 to 231-1在一张图片中,像素值范围为[0,255],所以默认类型为unit8,可以用下面的代码查看。

  从skimage导入io,数据

  img=data.chelsea()

  打印(img.dtype.name)

  在上表中,要特别注意浮点类型,其范围在[-1,1]或[0,1]之间。彩色图片转换为灰度图像后,其类型从unit8变为float。

  

一、图像数据类型及转换

  从skimage导入数据,img_as_float

  img=data.chelsea()

  打印(img.dtype.name)

  dst=img_as_float(img)

  打印(dst.dtype.name)

  输出:

  uint8

  float64

  

1、unit8转float

  从skimage导入img_as_ubyte

  将numpy作为np导入

  img=np.array([0,0.5,1],dtype=float)

  打印(img.dtype.name)

  dst=img_as_ubyte(img)

  打印(dst.dtype.name)

  输出:

  float64

  uint8

  Float改为unit8,可能会造成数据丢失,所以会有警告。

  除了这两种最常用的转换,实际上还有其他一些类型转换,如下表所示:

  函数名称描述img _ as _ float转换为64位浮点型. img_as_ubyteConvert转换为8位uint . img _ as _ uint转换为16位uint . img _ as _ int转换为16位int。

  

2、float转uint8

  如前所述,数据类型不仅可以通过直接转换来改变,还可以通过图像的颜色空间转换来改变。

  常用的色彩空间包括灰度空间、rgb空间、hsv空间和cmyk空间。颜色转换后,图像类型都是浮动的。

  skimage的所有色彩空间转换功能都放在SKImage的色彩模块中。

  

二、颜色空间及其转换

  从skimage导入io、数据、颜色

  img=data.lena()

  gray=color.rgb2gray(img)

  io.imshow(灰色)

  

例:rgb转灰度图

  用法相同,列举常用的如下:

  skimage.color.rgb2grey(rgb)

  skimage.color.rgb2hsv(rgb)

  skimage.color.rgb2lab(rgb)

  skimage.color.gray2rgb(图片)

  skimage.color.hsv2rgb(hsv)

  skimage.color.lab2rgb(实验室)

  其实以上所有转换函数都可以用一个函数代替。

  skim age . color . convert _ color space(arr,fromspace,tospace)

  表示将arr从fromspace颜色空间转换到tospace颜色空间。

  

其它的转换

  从skimage导入io、数据、颜色

  img=data.lena()

  hsv=color . convert _ color space(img, RGB , HSV )

  io.imshow(hsv)

  在色彩模块的色彩空间转换功能中,另一个有用的功能是

  Skimage.color.label2rgb(arr),可以根据标签值给图片上色。您可以在对图片进行分类和着色后使用此功能。

  例:lena图片分为三类,然后用默认颜色给三类上色。

  从skimage导入io、数据、颜色

  将numpy作为np导入

  img=data.lena()

  gray=color.rgb2gray(img)

  rows,cols=gray.shape

  labels=NP . zeros([行,列])

  对于范围(行):中的I

  对于范围内的j(列):

  if(gray[i,j]0.4):

  标签[i,j]=0

  elif(gray[i,j]0.75):

  标签[i,j]=1

  else:

  标签[i,j]=2

  dst=color.label2rgb(标签)

  io.imshow(夏令时)

  这就是python数字图像处理数据类型和色彩空间转换的细节。关于python图像数据类型颜色空间的更多信息,请关注盛行IT软件开发工作室的其他相关文章!

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

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