直方图均衡化
图像直方图表示的是数字图像中每一像素值与其出现频数间的统计关系。通常用横坐标表示像素值,纵坐标表示频数或相对频数。反映了图像像素值范围、像素值分布、整幅图像平均亮度等。直方图均衡化是图像增强的一种基本方法,可提高图像的对比度,即:将较窄的图像灰度范围以一定规则拉伸至较大的范围。
图像均衡化方法
实验效果
彩色图的直方图均衡化通过对rgb三通道分别做直方图均衡化再合并得到。若一幅图像的像素占有全部可能的灰度级并且分布均匀,则这样的图像有高对比度,直方图均衡化是将任意分布规律直方图的原始图像变换为具有均匀分布直方图的图像,因此达到增强图像对比度的效果。
matlab 代码
%彩色图
clc
clear
close all
image=imread('直方图均衡化-彩图.png');
image_r=image(:,:,1);
image_g=image(:,:,2);
image_b=image(:,:,3);
%三通道直方图均衡化
image_r_out=histeq(image_r);
image_g_out=histeq(image_g);
image_b_out=histeq(image_b);
%合并
image_out=uint8(zeros(size(image)));
image_out(:,:,1)=image_r_out;
image_out(:,:,2)=image_g_out;
image_out(:,:,3)=image_b_out;
figure
subplot(1,2,1)
imshow(image)
title('原彩色图像')
subplot(1,2,2)
imshow(image_out)
title('均衡化之后的彩色图像')
%灰度图
clc
clear
close all
image1=imread('直方图均衡化-灰度图.tif');
subplot(1,2,1)
histogram(image1,40);
axis([0 255 0 inf])
title('原图像直方图')
image1_out=histeq(image1);
subplot(1,2,2)
histogram(image1_out,40);
axis([0 255 0 inf])
title('均衡化图像直方图')
figure
subplot(1,2,1)
imshow(image1)
title('原图像')
subplot(1,2,2)
imshow(image1_out)
title('均衡化之后的图像')