Skimage图像处理(四)

数据类型与颜色空间转换

图像数据类型查看及转换

  1. 查看图像数据类型

from skimage import data,io

img=io.imread('c.jpg')

print(img.dtype.name)

显示效果输出:

  1. unit8转float,并打印像素值

from skimage import data,img_as_float

img=io.imread('c.jpg')

print(img.dtype.name)

dst=img_as_float(img)

print(dst.dtype.name)

print(img)

显示效果输出:

  1. float转uint8,并打印像素值

float转为unit8,有可能会造成数据的损失,因此会有警告提醒。

from skimage import img_as_ubyte

import numpy as np

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

print(img.dtype.name)

dst=img_as_ubyte(img)

print(dst.dtype.name)

print(img)

显示效果输出:

颜色空间转换

  1. Rgb转换灰度

from skimage import io,data,color

img=io.imread('c.jpg')

gray = color.rgb2gray(img)

io.imshow(gray)

显示效果:

  1. Rgb转换hsv

HSV是色相(Hue)、饱和度(Saturation)和亮度(Value)的缩写。

from skimage import io,data,color

img=io.imread('c.jpg')

gray=color.rgb2hsv(img)

io.imshow(gray)

显示效果:

  1. Rgb转换lab

Lab中l表示亮度,a表示红绿分量,b表示黄蓝分量。

from skimage import io,data,color

img=io.imread('c.jpg')

gray=color.rgb2lab(img)

io.imshow(gray)

  1. 灰度转换rgb

from skimage import io,data,color

img=io.imread('c.jpg')

gray=color.grey2rgb(img)

io.imshow(gray)

  1. Hsv转换rbg

from skimage import io,data,color

img=io.imread('c.jpg')

gray=color.hsv2rgb(img)

io.imshow(gray)

显示效果:

  1. Lab转换rbg(会出现红色提示但不用管)

from skimage import io,data,color

img=io.imread('c.jpg')

gray=color.lab2rgb(img)

io.imshow(gray)

效果显示:

  1. 以上转换都可用一句总结

skimage.color.convert_colorspace(arr, fromspace, tospace)

表示将arrfromspace颜色空间转换到tospace颜色空间

例:rgbhsv

from skimage import io,data,color

img=io.imread('c.jpg')

hsv=color.convert_colorspace(img,'RGB','HSV')

io.imshow(hsv)

显示效果:

对图片进行着色

skimage.color.label2rgb( ), 可以根据标签值对图片进行着色。创建一个灰度图像gray,并根据像素值将其分为三个类别(0、1、2)。然后,它使用color.label2rgb函数将类别标签转换为RGB图像,并使用io.imshow函数显示这个转换后的图像。

例:将图片分成三类,然后用默认颜色对三类进行着色

首先导入io模块用于图像读取,data模块用于获取示例图像,color模块用于颜色处理

from skimage import io,data,color

import numpy as np

使用io.imread从文件路径'c.jpg'读取图像

img=io.imread('c.jpg')

使用color.rgb2gray将RGB图像转换为灰度图像

gray=color.rgb2gray(img)

获取灰度图像的行数和列数

rows,cols=gray.shape

创建一个大小与灰度图像相同的矩阵,初始化为零

labels=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]=2

使用color.label2rgb将类别标签转换为RGB图像,imshow显示图像

dst=color.label2rgb(labels)

io.imshow(dst)

显示效果:

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值