数字图像灰度直方图实验报告 MATLAB 实现
本实验报告主要介绍了使用 MATLAB 进行数字图像处理实验,旨在绘制数字图像灰度直方图,并进行直方图均衡化处理。
一、实验内容
本实验主要分为四部分:(1)编程绘制数字图像的直方图;(2)直方图均衡处理;(3)程序运行结果比较;(4)实验体会。
二、实验步骤
1. 设计思想或流程图:读入彩色图像文件,并将其灰度化。然后,统计图像的灰度值分布情况,并绘制直方图。对直方图进行均衡化处理,使图像的灰度值分布更加均匀。
2. 源程序和注释:
clear all
% 读入彩色图像文件
PS = imread('1.jpg');
imshow(PS);
title('输入的彩色 JPG 图像');
% 将彩色图片灰度化并保存
imwrite(rgb2gray(PS), 'PicSampleGray.bmp');
PS = rgb2gray(PS);
% 绘制直方图
[m, n] = size(PS);
GP = zeros(1, 256);
for k = 0:255
GP(k+1) = length(find(PS == k)) / (m * n);
end
figure, bar(0:255, GP, 'g');
title('原图像直方图');
xlabel('灰度值');
ylabel('出现概率');
% 直方图均衡化
S1 = zeros(1, 256);
for i = 1:256
for j = 1:i
S1(i) = GP(j) + S1(i);
end
end
S2 = round((S1 * 256) + 0.5);
for i = 1:256
GPeq(i) = sum(GP(find(S2 == i)));
end
figure, bar(0:255, GPeq, 'b');
title('均衡化后的直方图');
xlabel('灰度值');
ylabel('出现概率');
% 图像均衡化
PA = PS;
for i = 0:255
PA(find(PS == i)) = S2(i+1);
end
figure, imshow(PA);
title('均衡化后图像');
三、实验结果比较
通过原始图像和均衡化后的图像对比,可以发现均衡化后图像的灰度值分布更加均匀。在原始图像中,灰度值集中在某个区间,而在均衡化后的图像中,灰度值分布在整个灰度范围内。这表明直方图均衡化可以改善图像的对比度和清晰度。
四、实验体会
通过本次实验,我学会了使用 MATLAB 进行数字图像处理,包括图像读取、灰度化、直方图绘制和均衡化处理。同时,我也了解了直方图均衡化的原理和方法,知道了它可以改善图像的对比度和清晰度。在未来,我将继续学习和实践数字图像处理技术,以提高自己的技能和知识。