1.在MATLAB中,通过函数imadjust()进行图像灰度的调整,该函数调用格式如下:
J=imadjust( I ) 对图像I进行灰度调整
J=imadjust( I,[low_in;high_in],[low_out;high_out],gamma)
-
[low_in;high_in]为原图像中要变换的灰度范围,[low_out;high_out]为变换后的灰度范围
-
该gamma参数为映射的方式,默认值为1,即线性映射。当gamma不等于1时为非线性映射
RGB2=imadjust(RGB1,[low_in high_in],[low_out high_out],gamma)
该函数对彩色图像的RGB1进行调整。随着颜色矩阵的调整,每一个调色板都有唯一的映射值。
例:J=imadjust(I,[0.2 0.3 0;0.6 0.7 1],[]); %imadjust()对RGB图像进行处理
2.通过函数stretchlim()和函数imadjust()进行图像增强
可以采用stretchlim()计算灰度图像的最佳输入区间,即函数imadjust(I,[low_in;high_in],[low_out;high_out])中的第二个参数,以此来实现图像增强。
例:
I=imread('pout.tif');
M=stretchlim(I); %获取最佳区间
J=imadjust(I,M,[]); %调整灰度范围
3.用函数imcomplement()进行灰度图像的反转变换
灰度图像的反转变换,将灰度值为0的像素值转换为255,将灰度值为255的像素值转换为0,将灰度值为x的像素值转换为255-x。通过灰度反转,能够增强暗色背景下的白色或灰色细节信息。例:
I=imread('1.jpg');
J=imcomplement(I); %实现灰度反转
常见图像灰度分布
线性变换示例
图像反转示例
非线性变换示例–幂次变换
左上为原图,Y取3.0,4.0,5.0
分段线性变换(对比度拉伸)