Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

rgb2ycbcr

将 RGB 颜色值转换为 YCbCr 颜色空间

说明

示例

YCBCR = rgb2ycbcr(RGB) 将 RGB 图像的红色、绿色和蓝色值转换为 YCbCr 图像的亮度 (Y) 和色度(CbCr)值。

示例

全部折叠

将图像从 RGB 转换为 YCbCr

将 RGB 图像读取到工作区。

RGB = imread('board.tif');

将图像转换为 YCbCr。

YCBCR = rgb2ycbcr(RGB);

显示原始图像和新图像

figure
imshow(RGB);
title('Image in RGB Color Space');

Figure contains an axes. The axes with title Image in RGB Color Space contains an object of type image.

figure
imshow(YCBCR);
title('Image in YCbCr Color Space');

Figure contains an axes. The axes with title Image in YCbCr Color Space contains an object of type image.

将颜色图从 RGB 转换为 YCbCr。

将索引图像加载到工作区。颜色图采用 RGB 颜色空间。

[I,map] = imread('forest.tif');

将颜色图转换为 YCbCr。

newmap = rgb2ycbcr(map);

分别采用原始颜色图和新颜色图显示此灰度图像。

figure
imshow(I,map)
title('Indexed Image with RGB Colormap');

Figure contains an axes. The axes with title Indexed Image with RGB Colormap contains an object of type image.

figure
imshow(I,newmap)
title('Indexed Image with YCbCr Colormap');

Figure contains an axes. The axes with title Indexed Image with YCbCr Colormap contains an object of type image.

输入参数

全部折叠

要转换的 RGB 颜色值,指定为数值数组,采用下列格式之一。

  • c×3 颜色图。每行指定一个 RGB 颜色值。

  • m×n×3 图像

数据类型: single | double | uint8 | uint16

输出参数

全部折叠

转换后的 YCbCr 颜色值,以与输入大小相同的数值数组形式返回。

  • 如果输入是 doublesingle,则 Y 在 [16/255, 235/255] 范围内,CbCr 在 [16/255, 240/255] 范围内。

  • 如果输入是 uint8,则 Y 在 [16, 235] 范围内,CbCr 在 [16, 240] 范围内。

  • 如果输入是 uint16,则 Y 在 [4112, 60395] 范围内,CbCr 在 [4112, 61680] 范围内。

参考

[1] Poynton, C. A.A Technical Introduction to Digital Video, John Wiley & Sons, Inc., 1996, p. 175.

[2] Rec. ITU-R BT.601-5, Studio Encoding Parameters of Digital Television for Standard 4:3 and Wide-screen 16:9 Aspect Ratios, (1982-1986-1990-1992-1994-1995), Section 3.5.

扩展功能

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

在 R2006a 之前推出