Main Content

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

根据标准差调整对比度。

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

显示调整后的图像。

imshow(J)

输入参数

全部折叠

灰度图像,指定为 m×n 数值矩阵。

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

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

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

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

数据类型: double

输入图像的对比度范围,以下列形式之一指定:

输入类型描述
灰度图像[low_in high_in] 形式的 1×2 向量指定要映射到输出图像中的值的输入灰度图像的对比度范围。值必须在 [0 1.0] 范围内。值 low_in 必须小于值 high_in
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(线性映射)。

数据类型: double

输出参量

全部折叠

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

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

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

数据类型: single | double

扩展功能

版本历史记录

在 R2006a 之前推出