在数字图像处理领域,直方图是一个至关重要的概念,它用来表示图像中各个灰度级别的像素出现的频率。直方图可以直观地反映出图像的亮度分布和对比度情况。本实验主要涉及两个核心知识点:直方图的显示和直方图均衡化。
1. 直方图的显示:
在MATLAB中,我们可以通过`imhist()`函数来绘制图像的直方图。在给定的代码中,有三种不同的方法来显示直方图:
- 使用`bar()`函数:`bar()`函数创建条形图,这里用来显示每个灰度级别的频数。通过`axis()`函数设置水平轴(灰度值)和垂直轴(频数)的范围,`set(gca,'xtick')`设置刻度值。
- 使用`stem()`函数:`stem()`函数创建茎叶图,同样用来表示频数,但用线段表示而不是条形。`'fill'`参数使得线段填充颜色,使得直方图更易读。
- 使用`plot()`函数:`plot()`函数绘制折线图,这里用于连接每个灰度级别的频数点。
2. 直方图均衡化:
直方图均衡化是一种增强图像对比度的处理方法,特别适用于低对比度图像。它的基本思想是重新分布图像的灰度值,使得每个灰度级别在新的直方图中占据相同的频数区间,从而扩大图像的动态范围。
- `imadjust()`函数可以手动调整图像的灰度级,例如在代码中,将灰度级范围[70/255, 160/255]扩展到[0, 255],以增强图像的对比度。
- `histeq()`函数是MATLAB提供的自动直方图均衡化函数,它可以自动计算出新的灰度映射关系,实现直方图均衡化。通过`histeq()`处理后的图像,其直方图通常会更加均匀,从而提高图像的视觉效果。
实验过程中,通过比较原始图像的直方图和经过直方图均衡化后的直方图,我们可以明显看出后者在对比度上的提升,这表明直方图均衡化有效地改善了图像的质量。
总结来说,这个实验主要介绍了如何在MATLAB中展示图像的直方图以及如何利用直方图均衡化技术增强图像的对比度。理解并掌握这些技能对于进行数字图像处理和分析至关重要,特别是在需要提升低对比度图像质量的应用中。