Skimage图像处理教程2)色彩空间变换

最为大家熟悉的色彩空间就是rgb色彩空间和灰度色彩空间了,除此之外HSV,YCbCr也都各有应用。这里我们就简单的介绍一下色彩空间变化,这就涉及到python中skimag.color的应用

首先skimage支持的色彩空间有:
[‘rgb’, ‘hsv’, ‘rgb cie’, ‘xyz’, ‘yuv’, ‘yiq’, ‘ypbpr’, ‘ycbcr’, ‘ydbdr’]
常用的操作有

# 转换色彩空间通用的方法
# arr是要转换的图片,fromspace是arr图片的色彩空间,
# tospace是要转换成为的色彩空间。
skimage.color.convert_colorspace(arr, fromspace, tospace)

#除此之外还有很多简短的方便的函数比如:
Skimage.color.rgb2gray(rgb)
Skimage.color.gray2rgb(gray)
Skimage.color.hsv2rgb(hsv)
Skimage.color.rgb2hsv(rgb)

下面我们就展示一个宇航员图片的例子,需要综合用到上一讲所涉及到的示例图片的读取,显示,以及显示图像的属性等知识。

import skimage
img = skimage.data.astronaut() #读取图片
skimage.io.imshow(img)
skimage.io.show()

img_gray = skimage.color.rgb2gray(img) #灰度图
skimage.io.imshow(img_gray)
skimage.io.show()

img_hsv = skimage.color.rgb2hsv(img) #hsv空间
skimage.io.imshow(img_hsv)
skimage.io.show()

Skimage图像处理教程2)色彩空间变换_第1张图片

上面是其对应的显示结果和属性,这里有一个坑就是变成了灰度图之后,整个图像会被归一化,还需要手动变成我们熟悉的0到255的强度,同时hsv空间的三个通道分别是色调H,饱和度S和明度V,色调是0到360度,其他两个都是0到1,这里变成hsv空间之后色调好像也被归一化了。之所以显示的这么魔性是因为数据的存储都是使用的numpy数据格式,并没有指明是什么色彩空间之类的,所以在imshow的时候应该就直接被当做了归一化的RGB图像进行显示了。

更多skimage教程请看这里

你可能感兴趣的:(机器学习)