主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

imadjust

调整图像强度值或颜色图

说明

J = imadjust(I) 将灰度图像 I 中的强度值映射到 J 中的新值。使用此语法时,imadjust 对所有像素值中最低的 1% 和最高的 1% 进行饱和处理。该函数将饱和界限之间的像素值线性映射到 0 和 1 之间的值。此运算可提高输出图像 J 的对比度。

此语法等效于 imadjust(I,stretchlim(I))

示例

J = imadjust(I,[low_in high_in])I 中的强度值映射到 J 中的新值,以使 low_inhigh_in 之间的值线性映射到 0 到 1 之间的值。

J = imadjust(I,[low_in high_in],[low_out high_out])I 中的强度值映射到 J 中的新值,以使 low_inhigh_in 之间的值线性映射到 low_outhigh_out 之间的值。

示例

J = imadjust(I,[low_in high_in],[low_out high_out],gamma)I 中的强度值映射到 J 中的新值,其中 gamma 指定描述 IJ 中的值之间关系的曲线形状。

J = imadjust(RGB,[low_in high_in],___) 将真彩色图像 RGB 中的值映射到 J 中的新值。您可以为每个颜色通道应用相同的映射或互不相同的映射。

示例

newcmap = imadjust(cmap,[low_in high_in],___) 将颜色图 cmap 中的值映射到 newcmap 中的新值。您可以为每个颜色通道应用相同的映射或互不相同的映射。

示例

全部折叠

将低对比度灰度图像读入工作区并显示它。

I = imread('pout.tif');
imshow(I)

Figure contains an axes object. The hidden axes object contains an object of type image.

调整图像的对比度,分别对低强度和高强度部分 1% 的数据进行饱和处理,并显示它。

J = imadjust(I);
figure
imshow(J)

Figure contains an axes object. The hidden axes object contains an object of type image.

将低对比度灰度图像读入工作区并显示它。

I = imread('pout.tif');
imshow(I);

Figure contains an axes object. The hidden axes object contains an object of type image.

在指定对比度范围的情况下调整图像的对比度。

K = imadjust(I,[0.3 0.7],[]);
figure
imshow(K)

Figure contains an axes object. The hidden axes object contains an object of type image.

将 RGB 图像读入工作区并显示它。

RGB = imread('football.jpg');
imshow(RGB)

Figure contains an axes object. The hidden axes object contains an object of type image.

调整 RGB 图像的对比度,指定对比度范围。

RGB2 = imadjust(RGB,[.2 .3 0; .6 .7 1],[]);
figure
imshow(RGB2)

Figure contains an axes object. The hidden axes object contains an object of type image.

将图像读入工作区并显示它。

I = imread('pout.tif');
imshow(I)

Figure contains an axes object. The hidden axes object contains an object of type image.

计算用于对比度拉伸的标准差和图像均值。

n = 2;  
Idouble = im2double(I); 
avg = mean2(Idouble);
sigma = std2(Idouble);

根据标准差调整对比度。

J = imadjust(I,[avg-n*sigma avg+n*sigma],[]);

显示调整后的图像。

imshow(J)

Figure contains an axes object. The hidden axes object contains an object of type image.

输入参数

全部折叠

灰度图像,指定为 m×n 数值矩阵。如果 I 是整数数据类型,则 imadjust 先使用 im2double 将像素值重新缩放到范围 [0, 1]。在通过映射输入和输出对比度范围之间的值来调整对比度后,该函数会将输出图像转换回 I 的原始数据类型。

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

真彩色图像,指定为 m×n×3 数值数组。如果 RGB 是整数数据类型,则 imadjust 先使用 im2double 将像素值重新缩放到范围 [0, 1]。在通过映射输入和输出对比度范围之间的值来调整对比度后,该函数会将输出图像转换回 RGB 的原始数据类型。

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

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

数据类型: double

输入图像的对比度范围,指定为下表中的值之一。

输入类型描述
灰度图像[low_in high_in] 形式的 1×2 向量指定要映射到输出图像中的值的输入灰度图像的对比度范围。值必须在 [0 1.0] 范围内。值 low_in 必须小于值 high_in
灰度图像未指定如果使用语法 imadjust(I) 仅指定一个输入参量,则该函数将根据输入图像值设置 low_inhigh_in,以便对所有像素值中最低的 1% 和最高的 1% 进行饱和处理。
RGB 图像或颜色图[low_RGB_triplet; high_RGB_triplet] 形式的 2×3 矩阵指定要映射到输出图像或颜色图中的值的输入 RGB 图像或颜色图的对比度范围。数组中的每行均为一个 RGB 颜色三元组。值必须在 [0 1] 范围内。值 low_RGB_triplet 必须小于值 high_RGB_triplet
RGB 图像或颜色图[low_in high_in] 形式的 1×2 向量指定要映射到输出图像中的值的输入 RGB 图像的对比度范围。每个值必须在 [0 1.0] 范围内。值 low_in 必须小于值 high_in。如果您对 RGB 图像或颜色图指定 1×2 向量,则 imadjust 会对每个颜色平面或通道应用相同的调整。
所有类型[] 如果您指定空矩阵 ([]),则 imadjust 使用范围 [0 1]

imadjust 函数裁剪低于 low_in 和高于 high_in 的值。低于 low_in 的值映射到 low_out,高于 high_in 的值映射到 high_out

数据类型: single | double

输出图像的对比度范围,指定为下表中的值之一。

输入类型描述
灰度图像[low_out high_out] 形式的 1×2 向量指定输出灰度图像的对比度范围。每个值必须在 [0 1] 范围内。
RGB 图像或颜色图[low_RGB_triplet; high_RGB_triplet] 形式的 2×3 矩阵指定输出 RGB 图像或颜色图的对比度范围。数组中的每行均为一个 RGB 颜色三元组。值必须在 [0 1] 范围内。
RGB 图像或颜色图[low_out high_out] 形式的 1×2 向量指定输出图像中的对比度范围。每个值必须在 [0 1] 范围内。如果您对 RGB 图像或颜色图指定 1×2 向量,则 imadjust 会对每个平面或通道应用相同的调整。
所有类型未指定或 [] 如果不指定输出对比度范围,或指定了空矩阵 ([]),则 imadjust 使用默认范围 [0 1]

如果 high_out 小于 low_out,则 imadjust 反转输出图像,就像照片底片一样。

数据类型: single | double

描述输入和输出值关系的曲线形状,指定为非负标量或 1×3 数值向量。

  • 如果 gamma 小于 1,则 imadjust 会对映射加权,使之偏向更高(更亮)输出值。

  • 如果 gamma 大于 1,则 imadjust 会对映射加权,使之偏向更低(更暗)输出值。

  • 如果 gamma 是 1×3 向量,则 imadjust 会对每个颜色分量或通道分别应用不同的 gamma。

  • 如果省略该参量,则 gamma 取默认值 1(线性映射)。

此图说明了在 gamma 小于 1、等于 1 和大于 1 时变换曲线的形状。在每个图中,x 轴表示输入图像中的强度值,y 轴表示输出图像中的强度值。

Transformation curves for gamma values less than 1, equal to 1, and greater than 1

数据类型: double

输出参量

全部折叠

调整后的图像,以灰度或 RGB 图像形式返回。J 的大小和类与输入灰度图像 I 或真彩色图像 RGB 相同。

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

调整后的颜色图,以与输入颜色图 cmap 具有相同类的 c×3 数值矩阵形式返回。

数据类型: single | double

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出