已知一幅名为“timg.jpg”对比度不均衡的图像,分析其直方图的分布情况,并利用直方图均衡方法对其进行处理,并利用figure命令分别显示原始图像及其直方图和处理结果图像及其直方图四幅图像(直方图的命令hist()和histeq())。
时间: 2024-10-24 07:11:49 浏览: 13
Demo.zip_DEMO_db9_光强_图像光强_图像处理 光强
5星 · 资源好评率100%
对于一幅名为“timg.jpg”的对比度不均衡图像,首先我们需要加载图片并观察其直方图。直方图展示了图像中像素值的分布情况,如果图像对比度过低,可能会看到大部分像素集中在几个亮度级别上,而其他部分则较为稀疏。
通过Python的PIL(Pillow)库加载图像,我们可以计算直方图:
```python
from PIL import Image
import matplotlib.pyplot as plt
# 加载图像
image = Image.open('timg.jpg')
# 转换为灰度图像以便于处理
gray_image = image.convert('L')
# 计算原始图像的直方图
histogram, bins = plt.hist(gray_image.histogram(), bins=256, range=(0, 256))
# 显示原始图像和直方图
plt.figure(figsize=(10, 4))
plt.subplot(121)
plt.imshow(gray_image, cmap='gray')
plt.title('Original Image & Histogram')
plt.subplot(122)
plt.plot(histogram, bins[:-1])
plt.title('Histogram of Original Image')
plt.show()
```
接着,我们使用`histeq()`函数来自Matplotlib的histnorm模块对图像进行直方图均衡化处理:
```python
# 直方图均衡化
equalized_image = histeq(gray_image)
# 绘制处理后的图像和直方图
plt.figure(figsize=(10, 4))
plt.subplot(121)
plt.imshow(equalized_image, cmap='gray')
plt.title('Equalized Image')
plt.subplot(122)
histogram_eq, _ = plt.hist(equalized_image.histogram(), bins=256, range=(0, 256))
plt.plot(histogram_eq, bins[:-1])
plt.title('Histogram of Equalized Image')
plt.show()
```
现在,我们得到了四张图像,分别是原始图像、原始图像的直方图、处理后的图像以及处理后图像的直方图。通过比较两者之间的直方图,可以看到经过直方图均衡化处理后,图像的像素分布变得更加均匀,对比度有所提高。
阅读全文