数字图像处理实验报告 下载本文

内容发布更新时间 : 2024/9/30 17:32:12星期一 下面是文章的全部内容请认真阅读。

班级;计算机1501 姓名:董俊杰 学号:3150602016

一、实验目的

1. 熟悉MATLAB关于图形处理的基本操作。

2. 调用系统的灰度直方图函数对图片进行修正和增强。 3. 自己编写直方图函数对图片进行直方图均衡化。 二、实验原理

在数字图像处理中,灰度直方图是最简单且最有用的工具之一。灰度直方图是表示一副图像灰度分布情况的统计图表。直方图的横坐标是灰度级,一般用r表示,纵坐标是具有该灰度级的像素个数或出现这个灰度级的概率P(rk)。已知P(rk)=nk/N式中,N为一幅图像中像素的总数;rk表示灰度级为k的灰度级;nk为第rk级灰度的像素数;P(rk)表示该灰度级出现的概率。

直方图均衡化:对原始图像中的像素灰度作某种映射变换,使变换后的图像灰度的概率密度是均匀分布的,即变换后图像是一幅灰度级均匀分布的图像,这意味着图像灰度的动态范围得到了增加,即图像的对比度得到了提高。 三、实验代码及效果显示

(1)调用系统函数实现 x=imread('C:\\Users\\董俊杰\\Pictures\\Saved Pictures\\01e44d5711c84f6ac72513437994cb.jpg@2o.jpg');//读取图像

x=rgb2gray(x); //将彩色图像转换成灰度图像 subplot(3,2,1);

imshow(x); //显示图像 title('原图'); subplot(3,2,2);

imhist(x); //调用系统的直方图函数 title('原图直方图'); subplot(3,2,3);

x1=adapthisteq(x); //系统的自适应均衡化函数 imshow(x1);

title('adapthisteq均衡后图'); subplot(3,2,4); imhist(x1);

title('adapthisteq均衡后直方图'); subplot(3,2,5);

x2=histeq(x); //系统的均衡化函数 imshow(x2);

title('histeq均衡后图'); subplot(3,2,6); imhist(x1);

title('histeq均衡后直方图'); 效果如下所示:

1

班级;计算机1501 姓名:董俊杰 学号:3150602016

(2)自己编写代码实现 x=rgb2gray(imread('C:\\Users\\董俊Pictures\\01e44d5711c84f6ac72513437994cb.jpg@2o.jpg'));

[m,n]=size(x);

\\Pictures\\Saved

p=zeros(1,256); //灰度级 for i=0:255

p(i+1)=length(find(x==i))/(m*n); end

subplot(2,2,1); bar(0:255,p,'b'); title('原图直方图'); subplot(2,2,2); imshow(x); title('原图');

s=zeros(1,256); for i=1:256 for j=1:i

s(i)=p(j)+s(i); //求得变换函数 end end

a=round(s*255); for i=0:255

GPeq(i+1)=sum(p(find(a==i))); end

subplot(2,2,3);

bar(0:255,GPeq,'b')

2

班级;计算机1501 姓名:董俊杰 学号:3150602016

title('均衡化后的直方图'); b=x;

for i=0:255

b(find(x==i))=a(i+1); end

subplot(2,2,4);

imshow(b) title('均衡化后图像'); 效果如下:

四、实验总结

通过此次实验,我们知道直方图仅能统计灰度像素出现的概率,具有一维特征,反映不出该像素在图像中的二维坐标,即直方图中,失去了图像本身,具有的像素空间位置(二维特征)。而且,原图经均衡化处理后,直方图占据了整个图像灰度值允许的范围。由于直方图均衡化增加了图像灰度动态范围,所以增加了原图像的对比度,反映在图像上就是图像的反差较大,许多细节都看的比较清楚了。

此次实验,熟悉了MATLAB的基本操作,进一步加深和理解了数字图像的基本知识。

3