python数字图像处理(4):图像数据类型及颜色空间转换
来源:互联网 发布:犀牛设计软件视频教程 编辑:程序博客网 时间:2024/04/28 02:13
一、图像数据类型及转换
在skimage中,一张图片就是一个简单的numpy数组,数组的数据类型有很多种,相互之间也可以转换。这些数据类型及取值范围如下表所示:
一张图片的像素值范围是[0,255], 因此默认类型是unit8, 可用如下代码查看数据类型:
from skimage import io,dataimg=data.chelsea()print(img.dtype.name)
在上面的表中,特别注意的是float类型,它的范围是[-1,1]或[0,1]之间。一张彩色图片转换为灰度图后,它的类型就由unit8变成了float
1、unit8转float
from skimage import data,img_as_floatimg=data.chelsea()print(img.dtype.name)dst=img_as_float(img)print(dst.dtype.name)
输出:
uint8
float64
2、float转uint8
from skimage import img_as_ubyteimport numpy as npimg = np.array([0, 0.5, 1], dtype=float)print(img.dtype.name)dst=img_as_ubyte(img)print(dst.dtype.name)
输出:
float64
uint8
float转为unit8,有可能会造成数据的损失,因此会有警告提醒。
除了这两种最常用的转换以外,其实有一些其它的类型转换,如下表:
二、颜色空间及其转换
如前所述,除了直接转换可以改变数据类型外,还可以通过图像的颜色空间转换来改变数据类型。
常用的颜色空间有灰度空间、rgb空间、hsv空间和cmyk空间。颜色空间转换以后,图片类型都变成了float型。
所有的颜色空间转换函数,都放在skimage的color模块内。
例:rgb转灰度图
from skimage import io,data,colorimg=data.lena()gray=color.rgb2gray(img)io.imshow(gray)
其它的转换,用法都是一样的,列举常用的如下:
skimage.color.rgb2grey(rgb)
skimage.color.rgb2hsv(rgb)
skimage.color.rgb2lab(rgb)
skimage.color.gray2rgb(image)
skimage.color.hsv2rgb(hsv)
skimage.color.lab2rgb(lab)
实际上,上面的所有转换函数,都可以用一个函数来代替
skimage.color.convert_colorspace(arr, fromspace, tospace)
表示将arr从fromspace颜色空间转换到tospace颜色空间。
例:rgb转hsv
from skimage import io,data,colorimg=data.lena()hsv=color.convert_colorspace(img,'RGB','HSV')io.imshow(hsv)
在color模块的颜色空间转换函数中,还有一个比较有用的函数是
skimage.color.label2rgb(arr), 可以根据标签值对图片进行着色。以后的图片分类后着色就可以用这个函数。
例:将lena图片分成三类,然后用默认颜色对三类进行着色
from skimage import io,data,colorimport numpy as npimg=data.lena()gray=color.rgb2gray(img)rows,cols=gray.shapelabels=np.zeros([rows,cols])for i in range(rows): for j in range(cols): if(gray[i,j]<0.4): labels[i,j]=0 elif(gray[i,j]<0.75): labels[i,j]=1 else: labels[i,j]=2dst=color.label2rgb(labels)io.imshow(dst)
- python数字图像处理(4):图像数据类型及颜色空间转换
- python数字图像处理(4):图像数据类型及颜色空间转换
- python数字图像处理(4):图像数据类型及颜色空间转换
- python 图像数据类型及颜色空间转换
- Python学习04_图像数据类型及颜色空间转换
- Win8 Metro(C#)数字图像处理--4图像颜色空间描述
- 图像处理算法基础(一)---图像颜色空间转换
- 【OpenCV3图像处理】颜色空间转换(一)颜色空间分类总结
- 【图像处理】颜色空间
- 数字图像处理-空间域图像增强(二)(直方图)
- 【OpenCV3图像处理】颜色空间转换(二)转换函数 cvtColor()
- python数字图像处理(6):图像的批量处理
- python数字图像处理(6):图像的批量处理
- python数字图像处理(6):图像的批量处理
- 数字图像处理之空间域图像增强
- opencv-python 读取图像并转换颜色空间
- 数字图像处理 颜色空间RGB、HSI、CMYK、YUV的相互转换
- 数字图像处理 颜色空间RGB、HSI、CMYK、YUV的相互转换
- Attribute
- 国内机票预订api调用
- Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)
- 《深入理解SPARK:核心思想与源码分析》(第1章)
- hybris trail goal
- python数字图像处理(4):图像数据类型及颜色空间转换
- centos挂载SSD
- Android开发中使用软引用和弱引用
- Sublime text 2/3 [Decode error - output not utf-8] 完美解决方法
- JFinal jetty maven配置jsp支持
- 类 BigDecimal
- Android缓存文件的存放
- 用mysqldump导出压缩文件
- 以高端“产品”提升“市场”竞争力