直方图增强图像的灰度直方图表示灰度图像中的每个灰度的像素数,反映了图像中每个灰度的出现频率,是图像的基本统计特征之一。
常见的直方图调整方法有直方图均衡化和直方图规定化两种。
的直方图并显示在MATLAB中,使用函数imhist )计算并显示图像的直方图。
MATLAB实现:
示例:计算RGB彩色图像的颜色直方图
I=imread(peppers.png ); subplot (2,2,1 ); imshow(I ); title (图像); subplot (2,2,2 ); imhist(I ) :1 ); title(r ); subplot (2,2,3 ); imhist(I ) :2 ); title(g ); subplot (2,2,4 ); imhist(I ) :3 ); title(b ); 运算结果:
直方图平差
简单地说,将输入图像的灰度等级为r的像素映射到输出图像的灰度等级为s的像素上,生成大致均匀的直方图的输出图像。
在MATLAB中,使用函数**histeq(** )进行直方图的均衡化处理。
MATLAB的实现
示例:
I=imread('fig0226 ) galaxy_pair_original ).tif ); j=histeq(I; %直方图均衡化、默认均衡化后的灰度数为64.subplot (2,2,1 ); imshow(I ); 标题(original image ); subplot (2,2,2 ); imshow(j ); 标题(histogram equalization ); subplot (2,2,3 ); imhist(I,64 ); 标题(original histogram ); subplot (2,2,4 ); imhist(j,64; 标题(qualization histogram ); 执行结果:
直方图归一化直方图归一化是指对给定图像的直方图进行处理,得到灰度上具有预定概率密度函数的图像。 也就是说,使处理后的图像直方图的形状接近用户希望的直方图。
这是书的说明:
在MATLAB中,函数**histeq(**也可以进行直方图的归一化处理。
j=histeq(I,hgram ) :在该函数中,I是输入的原图像,hgram是表示用户希望的直方图形状的整数向量,该向量的长度与最后确定的效果密切相关,向量越短j是进行直方图归一化后得到的灰度图像。
MATLAB的实现
示例:
I=imread('fig0226 ) galaxy_pair_original ).tif ); Hg ram=ones (1,256; j=histeq(I,hgram ); %直方图规范化subplot (1,3,1 ); imshow(I ); 标题(original image ); subplot (1,3,2 ); imshow(j ); 标题(histogram specification ); subplot (1,3,3 ); imhist(j ); 标题(histogram ); 执行结果:
通过直方图进行灰度图像增强有两点不足:一是处理后的图像灰度级有所减少,致使某些细节消失;二是某些图像,如直方图有xdddy等,经处理后其对比度易产生不自然的过分增强。此外,对于图像的有限灰度级,量化误差也经常引起信息丢失,导致一些敏感的边缘因与相邻像素点的合并而消失。