数字图像处理实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二○一八~二○一九学年第一学期信息科学与工程学院课程设计报告书

课程名称:数字图像处理

班级:

学号:

姓名:

指导教师:

二○一八年十二月

一、课程设计目的:

1. 掌握读、写、显示图像的基本方法。

2. 掌握图像直方图的概念、计算方法以及直方图归一化、均衡化方法。

3. 掌握图像灰度变换的基本方法,理解灰度变换对图像外观的改善效果。

二、课程设计内容及要求:

1. 读入一幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。

2. 完成灰度图像的直方图计算、直方图归一化、直方图均衡化等操作。

3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(二值化)等,分别使用不同参数观察灰度变换效果(对灰度直方图的影响)。

三、详细设计步骤:

1、所使用的图像文件都保存在Matlab 安装目\toolbox\images\imdemos

子目录下。

2、图像的读、写、显示操作。运用Matlab 图像处理工具箱中的imread

函数分别读入灰度图像pout.tif、二值图像blobs.png 和RGB 图像

peppers.png,观察相应的图像矩阵,并运用imshow 函数显示相应图像。

3、对一个RGB 彩色图像peppers.png,分别抽取其R、G、B 三个分

量层,并显示各层图像。

1、以灰度图像pout.tif 为例,运用灰度变换法实现图像增强。

2、运用Matlab 编程实现灰度直方图的统计以及直方图均衡化处理过程:

(1)计算并绘制原始图像的灰度直方图;

(2)根据离散累计分布函数,对原始灰度直方图进行均衡化处理,

绘制均衡化后的灰度直方图;

(3)生成均衡化处理后的新图像,显示并保存。

(4)比较原始图像和新图像的对比度。

(1)利用Matlab 函数IMNOISE(),在原图上分别叠加高斯噪声和椒

盐噪声

(2)实现均值滤波和中值滤波的功能,去除噪声;

(3)调整窗口大小,采用对比均值滤波中值滤波的性能;

1、以灰度图像rice.png 为例,实现Roberts 算子、Sobel 算子、Prewitt算子对其进行边缘检测,并实现根据梯度生成 5 种不同的增强图像。

2、若向原始图像rice.png 中加入高斯噪声,利用(1)中的函数,对噪声图像分别运用Roberts 算子、Sobel 算子、Prewitt 算子进行边缘检测,观察检测结果,试比较3 种边缘检测算子的抗噪声干扰能力。

四、程序代码及图形:

实验一

实验内容1

i=imread('C:\Program

Files\MATLAB\R2014a\toolbox\images\imdata\pout.tif');

imshow(i);

a=imread('C:\Program

Files\MATLAB\R2014a\toolbox\images\imdata\pears.png');

k=imread('C:\Program

Files\MATLAB\R2014a\toolbox\images\imdata\blobs.png');

r=a(:,:,1);

g=a(:,:,2);

b=a(:,:,3);

figure;imshow(a);

figure;imshow(r);

figure;imshow(g);

figure;imshow(b);

figure;imshow(k);

******************************************************************************* 实验内容2

灰度图均衡化

I=imread('C:\Program

Files\MATLAB\R2014a\toolbox\images\imdata\pout.tif');

J=im2double(I);

[R, C] = size(I);

cnt = zeros(1, 256);

for i = 1 : R

for j = 1 : C

cnt(1, I(i, j) + 1) = cnt(1, I(i, j) + 1) + 1;

end

end

f = zeros(1, 256);

f = double(f); cnt = double(cnt);

for i = 1 : 256

f(1, i) = cnt(1, i) / (R * C);

end

for i = 2 : 256

f(1, i) = f(1, i - 1) + f(1, i);

end

for i = 1 : 256

f(1, i) = f(1, i) * 255;

end

I = double(I);

for i = 1 : R

for j = 1 : C

I(i, j) = f(1, I(i, j) + 1);

end

end

I = uint8(I);

figure(1)

subplot(121)

imhist(J);

title('灰度直方图');

subplot(122)

imhist(I);

title('均衡化后的灰度直方图');

figure(2)

subplot(121)

相关文档
最新文档