使用matlab 编写一个能计算一张图像直方图的程序。 (b)编写直方图均衡的程序,输出均衡前后的直方图。 (c)请用实验结果分析,为什么结果图被增强?
时间: 2024-02-06 21:10:49 浏览: 62
用matlab-实现基于直方图均衡化的彩色图像增强.doc
下面是MATLAB代码实现:
(a)计算一张图像直方图
```matlab
% 读取图像
img = imread('test.jpg');
% 计算直方图
histogram = imhist(img);
% 绘制直方图
bar(histogram);
```
(b)直方图均衡
```matlab
% 读取图像
img = imread('test.jpg');
% 直方图均衡
img_eq = histeq(img);
% 绘制均衡前后的直方图
subplot(2,1,1), bar(imhist(img)), title('原始直方图');
subplot(2,1,2), bar(imhist(img_eq)), title('均衡后的直方图');
% 显示均衡前后的图像
figure, imshowpair(img, img_eq, 'montage'), title('均衡前后对比');
```
(c)实验结果分析
直方图均衡是将图像的灰度级进行重新分配,使得原始图像的灰度级分布更为均匀,从而提高图像的对比度和亮度。
通过实验可以看出,经过直方图均衡后,图像的对比度和亮度明显增强,图像的细节也更加清晰。而且,通过对比均衡前后的直方图,我们可以看到均衡后的直方图更加均匀,说明灰度级分布更加合理,这也是图像增强的主要原因之一。
阅读全文