彩色图像的颜色空间

  RGB颜色空间

  RGB颜色空间基于三维直角坐标系,包括R,G,B三个原始光谱分量,分别描述红色,绿色,蓝色的亮度值。

  为方便描述,我们将3个分量都进行归一化处理,三元组每个数值表示红,绿,蓝三者的比例。(0,0,0)代表黑色,(1,1,1)代表白色,(1,0,0)代表红色,以此类推。

  RGB图像由3个图像分量组成,分别是R通道图像,G通道图像,B通道图像。

from skimage import io
from matplotlib import pyplot as plt

img = io.imread('girl.jpg')  # 载入图像
fig = plt.figure()
# 显示RGB图像
plt.figure()
plt.axis('off')  # 不显示坐标轴
plt.imshow(img)
# R通道图像
imgR = img[:, :, 0]
plt.figure()
plt.axis('off')
plt.imshow(imgR,cmap='gray')
# G通道
imgG = img[:, :, 1]
plt.figure()
plt.axis('off')
plt.imshow(imgG,cmap='gray')
# B通道
imgB = img[:, :, 2]
plt.figure()
plt.axis('off')
plt.imshow(imgB,cmap='gray')
plt.show()

彩色原图:

 R,G,B不同分量显示结果:

 

 

 HSI颜色空间

HSI〔Hue-Saturation-Intensity(Lightness),HSI或HSL〕颜色模型用H、S、I三参数描述颜色特性,其中H定义颜色的频率,称为色调;S表示颜色的深浅程度,称为饱和度;I表示强度或亮度。

   色调H由角度表示,反映该颜色最接近哪个光谱波长。在色环中,0度表示红色光谱,120度表示绿色光谱,240度表示蓝色光谱。饱和度由色环的圆心到颜色点的半径决定,距离越长饱和度越高。亮度I由颜色点到圆柱底部的距离表示,底部圆心表示黑色,顶部圆心表示白色。

RGB颜色空间与HSI颜色空间的转换

  给定一幅RGB颜色空间格式图像,图像R,G,B分量分别进行归一化处理。在RGB颜色空间上,位于空间位置(x,y)的像素点的颜色用该像素点的R(x,y),G(x,y),B(x,y)三个数值表示。在HSI颜色空间中,位于空间位置(x,y)像素点的H(x,y),S(x,y),I(x,y):

H(x,y)=\Theta (x,y) G(x,y)\geq B(x,y)

        2\pi -\Theta (x,y) G(x,y)<B(x,y)

S(x,y)=1-\frac{3}{R(x,y)+G(x,y)+B(x,y)}\left [ min(R(x,y),G(x,y),B(x,y)) \right ]

I(x,y)=\frac{1}{3}[min(R(x,y)+G(x,y)+B(x,y))]

\Theta (x,y)=arccos\left \{ \frac{\frac{1}{2}[(R(x,y)-G(x,y))+(R(x,y)-B(x,y))]}{ [(R(x,y)-G(x,y)^{2})+(R(x,y)-B(x,y))(G(x,y)-B(x,y))]^{\frac{1}{2}}} \right \}

from skimage import data
from matplotlib import pyplot as plt
import math
import numpy as np
import sys


# 定义RGB图像转换为HSI图像的函数
def rgb2hsi(r, g, b):
    r = r / 255
    g = g / 255
    b = b / 255
    num = 0.5 * ((r - g) + (r - b))
    den = ((r - g) * (r - g) + (r - b) * (g - b)) ** 0.5
    if b <= g:
        if den == 0:
            den = sys.float_info.min
        h = math.acos(num / den)
    elif b > g:
        if den == 0:
            den = sys.float_info.min
        h = (2 * math.pi) - math.acos(num / den)
    s = 1 - (3 * min(r, g, b) / (r + g + b))
    i = (r + g + b) / 3
    return int(h), int(s * 100), int(i * 255)


image = data.coffee()
hsi_image = np.zeros(image.shape, dtype='uint8')
for ii in range(image.shape[0]):
    for jj in range(image.shape[1]):
        r, g, b = image[ii, jj, :]
        h, s, i = rgb2hsi(r, g, b)
        hsi_image[ii, jj, :] = (h, s, i)
# 显示RGB原图像
plt.subplot(231)
plt.imshow(image)
plt.axis('off')
plt.title('RGB')
# 显示RGB原图像R分量
plt.subplot(232)
plt.imshow(image[:, :, 0], cmap='gray')
plt.axis('off')
plt.title('RGB-R')
# 显示HSI图像H分量
plt.subplot(233)
plt.imshow(hsi_image[:, :, 0], cmap='gray')
plt.axis('off')
plt.title('HSI-H')

# 显示HSI图像S分量
plt.subplot(234)
plt.imshow(hsi_image[:, :, 1], cmap='gray')
plt.axis('off')
plt.title('HSI-S')
# 显示HSI图像I分量
plt.subplot(235)
plt.imshow(hsi_image[:, :, 2], cmap='gray')
plt.axis('off')
plt.title('HSI-I')

plt.show()

HSI颜色空间转RGB颜色空间 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: RGB空间中的彩色图像分割是指将一幅彩色图像分成多个区域,每个区域具有相似的颜色和纹理特征。这个任务可以通过图像处理和计算机视觉中的各种技术来完成,包括基于颜色、纹理和形状等特征的分割方法。 其中,基于颜色的分割方法是最常用的方法之一,它利用了RGB空间中颜色的分布特征,对每个像素进行颜色聚类,将相似的颜色分为一个类别,从而实现图像的分割。在颜色聚类过程中,可以采用K-means等聚类算法,选择合适的聚类数目,以获得最佳的分割结果。 除了基于颜色的方法,还有基于纹理和形状的分割方法。基于纹理的方法利用了图像中相邻像素之间的纹理相似性,以及纹理的周期性和对称性等特征,来实现图像的分割。而基于形状的方法则利用了图像中不同形状的区域之间的形状差异性,以及形状的连续性和光滑性等特征,来实现图像的分割。 总之,RGB空间中的彩色图像分割是一个重要的图像处理任务,它在计算机视觉、医学图像处理、自动驾驶等领域中都得到了广泛应用。 ### 回答2: RGB空间中的彩色图像分割是通过对彩色图像的像素进行分类和分割,将图像中的不同区域分开以便进行进一步的分析和处理。彩色图像由红色、绿色和蓝色三个通道组成,每个通道的像素值代表了对应颜色通道的亮度。因此,彩色图像分割的目标是根据像素的RGB值来确定图像中不同的物体、区域或特征。 彩色图像分割的方法有很多种,其中一种常用的方法是基于阈值的方法。该方法通过设定合适的阈值来将图像分为不同的区域。首先,需要选择一个或多个通道上的阈值。然后,对于每个像素,检查其RGB值是否满足阈值条件,如果满足则标记为目标区域,否则标记为背景区域。通过适当调整阈值,可以获得更准确的分割结果。 此外,还有一些基于聚类的方法用于彩色图像分割。聚类方法通过将图像的所有像素分成不同的群组,每个群组代表一个独立的区域。其中,K均值聚类是一种经典的方法,它将像素分成K个类别,通过最小化类别内的方差来实现最优的分割结果。 总之,RGB空间中的彩色图像分割是一项重要的图像处理任务,可以通过阈值法和聚类等方法实现。分割结果可以应用于计算机视觉、图像识别和物体检测等领域。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值