直方图均衡化(Matlab实现)

直方图均衡化定义:通过某种灰度映射使输入图像转换为在每一灰度级上都有近似相同的像素点的输出图像(即输出的直方图是均匀的)。

Matlab图像处理工具箱提供了用于直方图均衡化的函数histeq(),调用语法如下:[J,T]=histeq(I)

I是原始图像,J是经过直方图均衡化的输出图像,T是变换矩阵

图像归一化:将图像转换成唯一的标准形式以抵抗各种变换,从而可消除同类图像不同变形体之间的外观差异

灰度归一化:当图像归一化用于消除灰度因素(光照)等造成的图像外观变化时,称为灰度归一化

subplot函数:subplot(m,n,p)或者subplot(m n p)。subplot是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果m=2就是表示2行图。p表示图所在的位置,p=1表示从左到右从上到下的第一个位置。

3-7

I=imread('pout.tif'); %读入原图像
I=im2double(I); %将图象数组转换成double精度类型


%对于对比度变大的图像
I1=2*I-55/255;
subplot(4,4,1);
imshow(I1);
subplot(4,4,2);
imhist(I1);
subplot(4,4,3);
imshow(histeq(I1));
subplot(4,4,4);
imhist(histeq(I1));


%对于对比度变小的图像
I2=0.5*I+55/255;
subplot(4,4,5);
imshow(I2);
subplot(4,4,6);
imhist(I2);
subplot(4,4,7);
imshow(histeq(I2));
subplot(4,4,8);
imhist(histeq(I2));


%对于线性增加亮度的图像
I3=I+55/255;
subplot(4,4,9);
imshow(I3);
subplot(4,4,10);
imhist(I3);
subplot(4,4,11);
imshow(histeq(I3));
subplot(4,4,12);
imhist(histeq(I3));


%对于线性减小亮度的图像
I4=I-55/255;
subplot(4,4,13);
imshow(I4);
subplot(4,4,14);
imhist(I4);
subplot(4,4,15);
imshow(histeq(I4));
subplot(4,4,16);

imhist(histeq(I4));

直方图均衡化(Matlab实现)