实验1 图像直方图分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1 图像直方图分析
模式识别与智能系统王衍平 2010043003
1 实验目的
本试验通过MATLAB编程,获取一幅RGB图像的灰度直方图信息,并根据灰度直方图获得图像中的像素亮度的分布情况。
2 实验步骤
(1)使用imread函数读取一幅RGB图像,并输出显示该图像;
(2)使用size函数获取该图像的大小,然后分离三个颜色通道;
(3)分别输出显示R、G、B三个颜色通道的图像;
(4)分别绘制R、G、B三个颜色通道的灰度直方图;
(5)绘制RGB三个颜色通道的灰度直方图于一幅图像中。
3 MATLAB程序代码
I=imread('D:\数字图像处理实验\001.bmp');
% 若果不是RGB图像,报错
if(size(I,3)~=3)
error('rgbhist:numberOfSamples','Input image must be RGB.')
end
figure(1),imshow(I);
title('原RGB图像');
S=size(I); % Size of array file.
H=reshape(I,S(1)*S(2),S(3)); % 将每个颜色通道变为一列
H=double(H); % Convert to double precision.
nHist=2^8-1;
figure(2),imshow(I(:,:,1)); % 显示R通道上的图像
title('R通道上的图像');
figure(3),imshow(I(:,:,2)); % 显示G通道上的图像
title('G通道上的图像');
figure(4),imshow(I(:,:,3)); % 显示B通道上的图像
title('B通道上的图像');
figure(5),imhist(I(:,:,1),nHist); % 绘制图像R通道上的灰度直方图
title('R通道上的灰度直方图');
figure(6),imhist(I(:,:,2),nHist); % 绘制图像R通道上的灰度直方图
title('G通道上的灰度直方图');
figure(7),imhist(I(:,:,3),nHist); % 绘制图像R通道上的灰度直方图
title('B通道上的灰度直方图');
figure(8)
[N,X]=hist(H,[0:1:255]); % 绘制RGB图像的R、G、B通道上的灰度直方图
bar(X,N(:,[3 2 1]));
xlim([0 255]) % X limits.
hold on
plot(X,N(:,[3 2 1])); % 上边界轮廓
title('RGB图像的R、G、B通道上的灰度直方图');
hold off
4 实验结果与分析
通过观察R、G、B三个颜色通道的灰度直方图可知,原图像的像素灰度值大部分集中在亮区,一般在摄影中曝光太弱将会导致这种结果。