函数:
imadjust()函数用于调节灰度图像的亮度或彩色图像的颜色矩阵。常用语法有:J = imadjust(I)和J = imadjust(I, [low_in; high_in], [low_out; high_out], gamma)。
描述:
J = imadjust(I)将灰度图像I中的灰度值映射成输出图像J中的新值,使得灰度图像I在低灰度值和高灰度值上1%的数据是饱和的。这增强了输出图像J的对比度。本语法相当于imadjust(I, stretchlim(I))。
J = imadjust(I, [low_in; high_in], [low_out; high_out],gamma)将灰度图像I中的灰度值映射成输出图像J中的新值,使得low_in和high_in之间的值映射成low_out和high_out之间的值。low_in,high_in,low_out,high_out的值必须在0到1之间。低于low_in的值和高于high_in的值被去除,也就是说,低于low_in的值映射成low_out,高于high_in的值映射成high_out。你可以用一个空矩阵[]来替代[low_in; high_in]或者[low_out; high_out],这样就默认为[0 1]。参数gamma指定了曲线的形状,该曲线用来映射I的亮度值。如果gamma小于1,映射被加权到更高的输出值。如果gamma大于1,映射被加权到更低的输出值。如果省略了函数的参量,则gamma默认为1(线性映射)。
类型支持:
对于包含输入图像(而不是色彩表)的语法变体,输入图像的类型可以是uint8, uint16, int16, single和double,输出图像的类型与输入图像相同。对于包含色彩表的语法变体,输入和输出色彩表的类型都是double。
举例:
一、通过函数imadjust()调整图像的灰度范围
% 通过函数imadjust()调整图像的灰度范围
% 编写时间:2017-11-24 20:28:23 编写人:gq
close all; clear all; clc;
I = imread('pout.tif');
J = imadjust(I, [0.314, 0.588], [0 1]);
subplot(121), imshow(I); % uint8
subplot(122), imshow(J); % uint8
二、通过函数imadjust()调整图像的亮度
% 通过imadjust()函数调整图像的亮度
% 编写时间:2017-11-24 20:47:07 编写人:gq
% 通过参数gamma调整图像的亮度,如果gamma小于1,会加强亮色值的输出,如果gamma大于1,将会加强暗色值的输出。
close all; clear all; clc;
I = imread('pout.tif');
J1 = imadjust(I, [0.1 0.5], [0 1], 0.4); % gamma = 0.4
J2 = imadjust(I, [0.1 0.5], [0 1], 4); % gamma = 4
figure('name', '实验效果图');
subplot(131), imshow(J1);
subplot(132), imshow(I);
subplot(133), imshow(J2);
三、通过函数imadjust()对彩色图像进行增强
% 通过函数imadjust()对彩色图像进行增强
% 编写时间:2017-11-24 20:59:33 编写人:gq
% 函数imadjust不仅能够对灰度图像进行增强操作,还可以对彩色图像进行增强。
% 利用函数imadjust进行彩色图像增强时,是对彩色图像的RGB值分别进行操作。
close all; clear all; clc;
I = imread('C:\Users\Administrator\Desktop\yasuo.jpg');
J = imadjust(I, [0.2 0.3 0; 0.6 0.7 1], []);
subplot(121), imshow(I); % uint8
subplot(122), imshow(J); % uint8