将 RGB 图像或颜色图转换为灰度图

您所在的位置:网站首页 灰度图转为rgb 将 RGB 图像或颜色图转换为灰度图

将 RGB 图像或颜色图转换为灰度图

#将 RGB 图像或颜色图转换为灰度图| 来源: 网络整理| 查看: 265

rgb2gray

将 RGB 图像或颜色图转换为灰度图

全页折叠 语法I = rgb2gray(RGB)newmap = rgb2gray(map)说明

示例

I = rgb2gray(RGB) 将真彩色图像 RGB 转换为灰度图像 I。rgb2gray 函数通过消除色调和饱和度信息,同时保留亮度,来将 RGB 图像转换为灰度图。如果已安装 Parallel Computing Toolbox™,则 rgb2gray 可以在 GPU 上执行此转换。

示例

newmap = rgb2gray(map) 返回等同于 map 的灰度颜色图。

示例

全部折叠

将 RGB 图像转换为灰度图像打开实时脚本

读取并显示 RGB 图像,然后将其转换为灰度图。

读取示例文件 peppers.png 并显示 RGB 图像。

RGB = imread('peppers.png'); imshow(RGB)

将 RGB 图像转换为灰度图像并显示图像。

I = rgb2gray(RGB); figure imshow(I)

将 RGB 颜色图转换为灰度颜色图打开实时脚本

读取具有 RGB 颜色图的索引图像。然后将颜色图转换为灰度。

读取示例文件 corn.tif,该文件为具有 RGB 颜色图的索引图像。

[X,map] = imread('corn.tif');

显示图像。

imshow(X,map)

将 RGB 颜色图转换为灰度颜色图并重新显示图像。

newmap = rgb2gray(map); imshow(X,newmap)

输入参数

全部折叠

RGB — 真彩色图像 m×n×3 数值数组

真彩色图像,指定为 m×n×3 数值数组。

如果已安装 Parallel Computing Toolbox,则 RGB 也可以是 gpuArray。

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

map — 颜色图 c×3 数值矩阵

颜色图,指定为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。map 的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。

如果已安装 Parallel Computing Toolbox,则 map 也可以是 gpuArray。

数据类型: double

输出参数

全部折叠

I — 灰度图片 m×n 数值数组

灰度图像,以 m×n 数值数组形式返回。

如果已安装 Parallel Computing Toolbox,则 I 也可以是 gpuArray。

newmap — 灰度颜色图 c×3 数值矩阵

灰度颜色图,返回为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。newmap 的三列是相同的,因此 map 的每行都指定一个强度值。

如果已安装 Parallel Computing Toolbox,则 newmap 也可以是 gpuArray。

数据类型: double

提示

如果输入图像是灰度图像,则 rgb2gray 函数返回错误。im2gray 函数与 rgb2gray 基本相同,不同之处是它可以接受灰度图像作为输入并原样返回它们。如果使用 im2gray 函数,就不再需要类似如下条件语句的代码。

if ndims(I) == 3 I = rgb2gray(I); end算法

rgb2gray 通过计算 R、G 和 B 分量的加权和,将 RGB 值转换为灰度值:

0.2989 * R + 0.5870 * G + 0.1140 * B

这些权重与 rgb2ntsc (Image Processing Toolbox) 函数用于计算 Y 分量的权重相同。

在舍入到小数点后 3 位之后,rgb2gray 中用来计算灰度值的系数与 Rec.ITU-R BT.601-7 中用来计算亮度 (E'y) 的系数相同。

Rec.ITU-R BT.601-7 使用以下公式计算 E'y:

0.299 * R + 0.587 * G + 0.114 * B 扩展功能C/C++ 代码生成 使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

生成代码时,如果您选择通用的 MATLAB Host Computer 目标平台,rgb2gray 生成的代码使用预编译的、特定于平台的共享库。使用共享库可保留性能上的优化,但适用范围仅限于生成的代码所针对的目标平台。

GPU 代码生成 使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。基于线程的环境 使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。

此函数完全支持基于线程的环境。有关详细信息,请参阅Run MATLAB Functions in Thread-Based Environment。

GPU 数组 通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。

此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

分布式数组 使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。

此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。

另请参阅

im2gray | cmap2gray | mat2gray (Image Processing Toolbox) | ind2gray (Image Processing Toolbox) | rgb2ind | rgb2ntsc (Image Processing Toolbox)

主题图像类型


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3