实验二、图像预处理
1.请用Matlab中的函数命令:
(1)显示一幅原始图像(自定,建议用对比度较低的);
(2)使用直方图函数对自定的一幅图像进行直方图显示;
(3)用直方图均衡化函数对图像进行处理,并显示处理后的图像。。
实验步骤:
-
显示一幅原始图像
-
使用直方图函数imhist对其进行直方图显示;
-
分别使用adapthisteq函数以及histeq函数对图像进行处理;
-
使用imhist函数分别对adapthisteq函数以及histeq函数对图像均衡后的图像进行直方图显示;
实验Matlab程序:(2016a版本)
1. clear;
2. clc;
3. img = imread('hua.jpg');%读取图片
4. imggray=rgb2gray(img);%灰度处理
5. imggray1=adapthisteq(imggray);%用adapthisteq将图imggray进行直方图均衡化
6. imggray2=histeq(imggray);%用histeq将图imggray进行直方图均衡化
7.
8. subplot(3,2,1);
9. imshow(imggray);%显示灰度处理后的图
10. title('原图');
11.
12. subplot(3,2,2);
13. imhist(imggray);%显示直方图
14. title('原图直方图');
15.
16. subplot(3,2,3);
17. imshow(imggray1);%显示使用adapthisteq均衡后的原图
18. title('对原图进行adapthisteq均衡处理');
19. subplot(3,2,4);
20. imhist(imggray1);%显示使用adapthisteq均衡后的直方图
21. title('adapthisteq均衡后直方图');
22.
23. subplot(3,2,5);
24. imshow(imggray2);%显示使用histeq均衡后的原图
25. title('对原图进行histeq均衡处理');
26. subplot(3,2,6);
27. imhist(imggray1);%显示使用histeq均衡后的直方图
28. title('histeq均衡后直方图');
程序说明:
根据查阅资料分别搜集到四个函数:imhist()函数、histeq()函数以及apthisteq()函数;其中imhist函数用于显示图像的直方图,而histeq函数adapthisteq函数均为图像的均衡化函数;
清空工作区存储数据后,首先读入一幅图片1,因为imhist函数只能处理二维数据,因此处理RGB图像时,应该将其转化为灰度图像。通过rgb2gray函数获取灰度图像,接着在程序中分别使用histeq函数以及apthisteq函数获取均衡后的原图,并且结合imhist函数获取histeq均衡后的直方图和apthisteq均衡后的直方图;
实验效果:
实验分析:
直方图均衡化可使得图像的灰度间距拉大或者使灰度分布均匀,从而增加了反差,使图像细节清晰,达到图像增强的目的。