1.彩色图像均衡化是对彩色图片的每一个通道分别实现均衡化已达到彩色图像均衡化的效果。
2.直方图:图像的灰度直方图就描述了图像中灰度分布情况, 能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数, 描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的率。
3.直方图均衡化概念
直方图均衡化(Histogram Equalization)是一种增强图像对比度(Image Contrast)的方法,其主要思想是将一副图像的直方图分布通过累积分布函数变成近似均匀分布,从而增强图像的对比度。为了将原图像的亮度范围进行扩展, 需要一个映射函数, 将原图像的像素值均衡映射到新直方图中, 这个映射函数有两个条件。
①不能打乱原有的像素值大小顺序, 映射后亮、 暗的大小关系不能改变;
② 映射后必须在原有的范围内,即像素映射函数的值域应在0和255之间;
因此,使用到了累计分布函数
最后通过变换函数实现均衡化
clc
clear all
I=imread('E:\图片\01.jpg');
figure,subplot(2,2,1),imshow(I),title('原图')
subplot(2,2,2),imhist(I),title('原图的直方图')
OutImg=I;
R=I(:,:,1);
figure,subplot(3,2,1),imshow(R),title('R的灰度图')
subplot(3,2,2),imhist(R),title('R的直方图')
G=I(:,:,2);
subplot(3,2,3),imshow(G),title('G的灰度图')
subplot(3,2,4),imhist(G),title('G的直方图')
B=I(:,:,3);
subplot(3,2,5),imshow(B),title('B的灰度图')
subplot(3,2,6),imhist(B),title('B的直方图')
R=hist_1(R);
figure,subplot(3,2,1),imshow(R),title('R变化后的灰度图')
subplot(3,2,2),imhist(R),title('R变化后的直方图')
G=hist_1(G);
subplot(3,2,3),imshow(G),title('G变化后的灰度图')
subplot(3,2,4),imhist(G),title('G变化后的直方图')
B=hist_1(B);
subplot(3,2,5),imshow(B),title('B变化后的灰度图')
subplot(3,2,6),imhist(B),title('B变化后的直方图')
OutImg(:,:,1)=R;
OutImg(:,:,2)=G;
OutImg(:,:,3)=B;
figure,subplot(2,2,1),imshow(OutImg);title('直方图均衡化后的图像')
subplot(2,2,2),imhist(OutImg);title('直方图均衡化后的直方图')
function hist_img = hist_1(I)
[height,width]=size(I);
NumPixel = zeros(1,256);
for i = 1:height
for j = 1:width
NumPixel( I(i,j) + 1 ) = NumPixel( I(i,j) + 1 ) + 1;
end
end
for i = 1:256
ProbPixel(i) = NumPixel(i) / (height * width * 1.0);
end
for i = 1:256
if i == 1
CumuPixel(i) = ProbPixel(i);
else
CumuPixel(i) = CumuPixel(i-1) + ProbPixel(i);
end
end
for i = 1:256
Map(i) = uint8(255 * CumuPixel(i)+0.5);
end
for i = 1:height
for j = 1:width
I(i,j)=Map(I(i,j) + 1);
end
end
hist_img=I;
end