【数字图像处理matlab系列】空间域处理之亮度变换(imadjust函数使用)
在空间域中,图像处理就是直接对图像的像素进行操作
imadjust 是 MATLAB 中用于调整图像强度值或颜色图的函数。它可以改变图像的对比度,使得图像更清晰或更易于分析。以下是 imadjust 函数的一些常见用法和参数:
- 基本用法:
J = imadjust(I):将灰度图像 I 中的强度值映射到新的图像 J 中。默认情况下,imadjust 对所有像素值中最低的 1% 和最高的 1% 进行饱和处理,将这些像素值线性映射到 0 到 1 之间的值,从而提高输出图像的对比度。
>> I = imread('pout.tif');
>> J = imadjust(I);
>> figure(1);imshow(I);figure(2);imshow(J);
- 指定对比度范围:
J = imadjust(I, [low_in high_in]):将 I 中的强度值映射到 J 中的新值,使得 low_in 和 high_in 之间的值线性映射到 0 到 1 之间的值。
J = imadjust(I, [low_in high_in], [low_out high_out]):将 I 中的强度值映射到 J 中的新值,使得 low_in 和 high_in 之间的值线性映射到 low_out 到 high_out 之间的值。
>> K = imadjust(I, [0.3 0.7], []);
>> figure(3);imshow(K);
- 非线性映射:
J = imadjust(I, [low_in high_in], [low_out high_out], gamma):除了线性映射外,可以通过指定 gamma 参数来实现非线性映射。gamma 描述了输入和输出值之间关系的曲线形状。
>> F = imadjust(I, [0.3, 0.7], [0, 1], 1);
>> figure(4);imshow(F);
>> F1 = imadjust(I, [0.3, 0.7], [0, 1], 2);
>> figure(5);imshow(F1);
>> F2 = imadjust(I, [0.3, 0.7], [0, 1], 0.5);
>> figure(6);imshow(F2);
- 彩色图像和颜色图:
J = imadjust(RGB, [low_in high_in], ___):将真彩色图像 RGB 中的值映射到 J 中的新值。您可以为每个颜色通道应用相同的映射或互不相同的映射。
>> RGB = imread('football.jpg');
>> RGB2 = imadjust(RGB, [.2 .3 0; .6 .7 1], []);
>> figure(1);imshow(RGB);figure(2);imshow(RGB2);
- 其他用法:
newcmap = imadjust(cmap, [low_in high_in], ___):将颜色图 cmap 中的值映射到新的颜色图 newcmap 中。
- 基于标准差的图像对比度拉伸:
>> I = imread('pout.tif');
n = 2;
Idouble = im2double(I);
avg = mean2(Idouble);
sigma = std2(Idouble);
J = imadjust(I, [avg-n*sigma avg+n*sigma], []);
>> figure(1);imshow(I);figure(2);imshow(J);