【问题标题】:14 Bit RGB to YCrCb14 位 RGB 转 YCrCb
【发布时间】:2015-01-16 14:41:35
【问题描述】:

我有一个 14 位图像,我想将其转换为 YCrCb 色彩空间。据我所知,转换是为 8 位图像编写的。例如,当我使用 matlab 函数 rgb2ycrcb 并将其转换回 rgb 时,它将全是白色。不丢失任何信息对我来说非常重要。我想要做的是将亮度与色度分开并进行一些处理并将其转换回 RGB。

【问题讨论】:

    标签: matlab image-processing color-space


    【解决方案1】:

    用于从 RGB 颜色空间转换数量的 YCbCr 标准专为 8 位颜色通道图像而设计。调整比例因子和常数,以便输入是 24 位 RGB 图像(每通道 8 位。顺便说一句,您的符号令人困惑。通常您使用 xx-bit RGB 来表示总共需要多少位来表示图像)。

    我可以提出的一个建议是独立地重新调整您的频道,以便它们从[0-1] 用于所有频道。 rgb2ycbcr 可以接受浮点输入,只要它们在 [0-1] 的范围内。从您的上下文来看,您有 14 位代表每个颜色通道。因此,您可以简单地执行此操作,假设您的图像存储在 A 中,并且输出将存储在 B 中:

    B = rgb2ycbcr(double(A) / (2^14 - 1));
    

    然后您可以使用rgb2ycbcr 的输出来处理您的色度和亮度分量。请记住,组件也将在[0-1] 之间进行标准化。进行处理,然后使用ycbcr2rgb 转换回来,然后通过2^14 - 1 重新缩放您的输出,使您的图像恢复为每个通道的 14 位 RGB。假设 Bout 是您在 YCbCr 颜色空间中处理后的输出图像,请执行以下操作:

    C = round((2^14 - 1)*ycbcr2rgb(Bout));
    

    我们四舍五入,因为这很可能会提供浮点值,并且您的图像颜色平面需要是无符号整数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-03
      • 2019-05-23
      • 1970-01-01
      相关资源
      最近更新 更多