一、 实验目的
-
- 掌握采用直方图进行图像增强的方法
二、实验原理与方法
略
三、实验内容与步骤
- 使用函数 imhist 显示读入图像的直方图。
- 使用histeq均衡化直方图
- 尝试自己实现规定化直方图
i = imread('图片2.png'); i = rgb2gray(i); %将图片转换成灰度图 subplot(121),imshow(i),title('原始图像'); subplot(122),imhist(i);%imhist函数计算并且显示图像直方图 g = histeq(i); %对直方图均衡化 figure(2),subplot(121),imshow(g),title('均衡化直方图')%均衡化后直方图; subplot(122),imhist(g);%显示直方图均衡化后的图像的直方图 figure(3); g2 = adapthisteq(i); subplot(121),imshow(g2),title('adapthisteq函数');% 对灰度图像应用自适应直方图均衡化 subplot(122),imhist(g2);
adapthisteq()
是一个用于对图像进行自适应直方图均衡化的图像处理函数。主要应用于MATLAB和其他类似的编程环境中。自适应直方图均衡化旨在改善图像的局部对比度,特别是在图像具有不同区域的不同亮度和对比度时。与传统的直方图均衡化方法不同,adapthisteq()
根据图像的局部特征进行调整,从而避免了过度增强某些区域的对比度(可能会导致信息丢失)。
adapthisteq()
是一个用于对图像进行自适应直方图均衡化的图像处理函数。主要应用于MATLAB和其他类似的编程环境中。自适应直方图均衡化旨在改善图像的局部对比度,特别是在图像具有不同区域的不同亮度和对比度时。与传统的直方图均衡化方法不同,adapthisteq()
根据图像的局部特征进行调整,从而避免了过度增强某些区域的对比度(可能会导致信息丢失)。
一个简单的adapthisteq()
函数示例如下:
out_img = adapthisteq( in_img, 'NumTiles', [M N], 'ClipLimit', clip_limit, 'Range', range, 'Distribution', distribution, 'Alpha', alpha );
在此示例中:
out_img
:经过自适应直方图均衡化的输出图像。in_img
:输入图像。'NumTiles'
:一个包含两个元素的向量 [M N],表示要将图像分割成 M x N 个网格。默认为 [8 8].'ClipLimit'
:用于控制图像亮度和对比度增强程度的值。默认值为0.01。'Range'
:要选择输出图像的动态范围。 'Range'可以是'full'
(默认) 或者'original'
。 'full' 会使用整个数据类型的范围来表示出来图像,而 'original' 会尽可能保留输入图像的范围。'Distribution'
:指定局部映射的概率分布函数,可以是'uniform'
(默认)、'rayleigh'
或者'exponential'
。'Alpha'
:调节与所选分布相结合的直方图的形状参数。 默认值是 0.4。
注意:此函数在GNU Octave中可能与MATLAB中稍有不同。