Main Content

mat2gray

将矩阵转换为灰度图像

说明

I = mat2gray(A,[amin amax]) 将矩阵 A 转换为灰度图像 I,该图像包含 0(黑色)到 1(白色)范围内的值。aminamaxA 中对应于 I 中 0 和 1 的值。小于 amin 的值裁剪到 0,大于 amax 的值裁剪到 1。

示例

I = mat2gray(A)aminamax 的值设置为 A 中的最小值和最大值。

示例

全部折叠

读取一个图像并显示它。

I = imread('rice.png');
figure
imshow(I)

执行一种返回数值矩阵的运算。此运算寻找边缘。

J = filter2(fspecial('sobel'),I);
min_matrix = min(J(:))
min_matrix = -779
max_matrix = max(J(:))
max_matrix = 560

请注意,矩阵的数据类型 double 的值超出 [0,1] 范围,包含负值。

显示运算结果。由于矩阵的数据范围在 imshow 的默认显示范围之外,因此每个正值像素显示为白色,每个负值或零值像素显示为黑色。查看米粒的边缘很有挑战性。

figure
imshow(J)

将矩阵转换为图像。显示图像的最大值和最小值。

K = mat2gray(J);
min_image = min(K(:))
min_image = 0
max_image = max(K(:))
max_image = 1

请注意,值的数据类型仍是 double,但所有值都在 [0, 1] 范围内。

显示转换结果。像素显示一系列灰度颜色,这使得边缘的位置更加明显。

figure
imshow(K)

输入参数

全部折叠

输入图像,指定为数值矩阵。

输入黑白值,指定为二元素数值向量。

  • 输入图像 A 中小于或等于 amin 的值映射到强度图像 I 中的值 0。

  • A 中大于或等于 amax 的值映射到 I 中的值 1。

输出参量

全部折叠

输出强度图像,以 [0, 1] 范围中的值组成的数值矩阵形式返回。

数据类型: double

扩展功能

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

版本历史记录

在 R2006a 之前推出

全部展开

另请参阅

| | |