数字图像处理报告

实 验 报 告

课程名称 数字图像处理 实验项目 点运算和直方图处理 实验仪器 PC机 MATLAB软件

系 别 光电信息与通信工程学院 专 业 测控技术与仪器 班级/学号 测控0901/2009010776 学生姓名 林云峰 实验日期 20xx年12月 成 绩 指导老师 郑青玉

实验1 点运算和直方图处理

一、 实验目的

1. 掌握利用Matlab图像工具箱显示直方图的方法

2. 掌握运用点操作进行图像处理的基本原理。

3. 进一步理解利用点操作这一方法进行图像处理的特点。

4. 掌握利用Matlab图像工具箱进行直方图均衡化的基本方法。

二、 实验的硬件、软件平台

硬件: 计算机

软件: 操作系统:WINDOWS 2000

应用软件:MATLAB

三、 实验内容及步骤

1. 了解Matlab图像工具箱的使用。

2. 利用Matlab图像工具箱对图像进行点操作,要求完成下列3个题目中的至少2个。 ⑴ 图1灰度范围偏小,且灰度偏低,改正之。

⑵ 图2暗处细节分辨不清,使其能看清楚。

⑶ 图3亮处细节分辨不清,使其能看清楚。

数字图像处理报告

数字图像处理报告

数字图像处理报告

图1 图2 图3

3. 给出处理前后图像的直方图。

4. 利用MatLab图像处理工具箱中函数对以上图像进行直方图均衡化操作,观察结果。

四、 思考题

1. 点操作能完成哪些图像增强功能?

2. 直方图均衡化后直方图为何并不平坦?为何灰度级会减少?

五、 实验报告要求

1.对点操作的原理进行说明。

2.给出程序清单和注释。

3.对处理过程和结果进行分析(包括对处理前后图像的直方图的分析)。 clc

clear all

I=imread('point2.bmp');%读取标题为“Point2”的位图,并用“I”表示该图 j=rgb2gray(I); %转为灰度图像,并用j表示

[l,r]=size(j); %将j的行数返回到第一个输出变量l,将列数返回到第二个输出变量r

figure(1)%创建一个空的窗口

subplot(221) %将窗口分成2行2列,并在第一个位置进行操作

imshow(j) %显示图片j

title('源图像') %标题

for m=1:l %循环语句,行数m的值从1到l,下同

for n=1:r

p(m,n)=j(m,n)*2; %将j图中的每一个点的像素值乘以2.4,得到的新像素以原来的位置构成图p end

end

subplot(222)

imshow(p)

title('处理后图像')

subplot(2,2,3)

imhist(j);%显示j的直方图

title('源图像直方图')

subplot(2,2,4)

imhist(p)

title('处理后的直方图')

数字图像处理报告

对比图像处理前后的直方图可知。源图像的灰度范围较小,图像均衡化处理后。灰度级取值的动态范围扩大了,但灰度级减少了。直方图变得更稀疏。并且灰度级值整体增大了。体现在直方图整体向右平移了一段距离。

clc

clear all;

B1=imread('POINT1.bmp'); B2=rgb2gray(B1);

[C,K]=size(B2);

for i=1:C

for j=1:K

if B2(i,j)<30

A(i,j)=1.5*B2(i,j)+20; else A(i,j)=B2(i,j); end

end

end

subplot(221)

imshow(B1);

subplot(223)

imshow(A);

subplot(222)

imhist(B2);

subplot(224)

imhist(A);

数字图像处理报告

clc

clear all

A=imread('point1.bmp');

b=rgb2gray(A);

p1=imadjust(b,[0,0.5],[0,1],0.9);

figure(1)

subplot(221)

imshow(b)

title('源图像')

subplot(223)

imshow(p1)

title('处理过后的图像')

subplot(222)

imhist(b)

title('源直方图图')

subplot(224)

imhist(p1)

title('处理过后的直方图')

数字图像处理报告

对于实验1.2与是对图像进行点操作,期中对于判定和循环的运用是解题的关键,即对点进行判定并只对满足条件的点进行处理。

思考题

1. 点操作可以扩大灰度值的范围。并且可以改变某点灰度值的大小,实现增强或减弱图像亮度、增强对比度以及直方图均衡化处理。

2. 均衡化后的直方图不平坦是由于图像中各灰度级出现的概率不同。均衡化后的直方图使灰度级分布具有均匀概率密度。扩展了像素取值的动态范围,但减少了灰度级。

实验感想:通过本次实验,对与图片的点操作和直方图处理有了更深刻的体会。

实 验 报 告

课程名称 数字图像处理 实验项目 图像平滑实验 实验仪器 PC机 MATLAB软件

系 别 光电信息与通信工程学院 专 业 测控技术与仪器 班级/学号 测控0901/2009010776 学生姓名 林云峰 实验日期 20xx年12月 成 绩 指导老师 郑青玉

实验2 图像平滑实验

一、实验目的

1.通过实验掌握图像去噪的基本方法;

2.学会根据情况选用不同方法。

二、实验的硬件、软件平台

硬件:计算机

软件:操作系统:WINDOWS 2000

应用软件:MATLAB

三、实验内容及要求

1.实验内容

请在如下面方法中选择多个,完成图像去噪操作,并进行分析、比较。

(1)对静态场景的多幅图片取平均;

(2)空间域模板卷积(不同模板、不同尺寸);

(3)频域低通滤波器(不同滤波器模型、不同截止频率);

(4)中值滤波方法。

2.实验要求

(1)图片可根据需要选取;

(2)对不同方法和同一方法的不同参数的实验结果进行分析和比较,如空间域卷积模

板可有高斯型模板、矩形模板、三角形模板和自己根据需求设计的模板等;模板大小可以是3×3,5×5,7×7或更大。频域滤波可采用矩形或巴特沃斯等低通滤波器模型,截止频率也是可选的。

(3)分析比较不同方法的结果。

四、思考题

1.不同空间域卷积器模板的滤波效果有何不同?

2.空间域卷积器模板的大小的滤波效果有何影响?

3.用多幅图像代数平均的方法去噪对图像有何要求?

4.不同频域滤波器的效果有何不同?

五、实验报告要求

1.列出程序清单并进行功能注释;

2.说明不同方法去噪效果;

3.对去噪方法进行详细分析对比。

(1)对静态场景的多幅图片取平均:

clc;

clear; all;%

I1=imread('lenna_noise1.bmp');%读取图片1

subplot(3,3,1);%三行三列第一幅

imshow(I1);%显示图片1

I2=imread('lenna_noise2.bmp');%读取图片2

subplot(3,3,2);%三行三列第二幅

imshow(I2);%显示图片2

I3=imread('lenna_noise3.bmp');%读取图片3 subplot(3,3,3);%三行三列第三幅

imshow(I3);%显示图片3

I4=imread('lenna_noise4.bmp');%读取图片4 subplot(3,3,4);%三行三列第四幅

imshow(I4);%显示图片4

I5=imread('lenna_noise5.bmp');%读取图片5 subplot(3,3,5);%三行三列第五幅

imshow(I5);%显示图片5

I6=imread('lenna_noise6.bmp');%读取图片6 subplot(3,3,6);%三行三列第六幅

imshow(I6);%显示图片6

I7=imread('lenna_noise7.bmp');%读取图片7 subplot(3,3,7);%三行三列第七幅

imshow(I7);%显示图片7

I8=imread('lenna_noise8.bmp');%读取图片8 subplot(3,3,8);%三行三列第八幅

imshow(I8);%显示图片8

i1=double(I1)/255;%灰度转化为浮点数再除以255 i2=double(I2)/255; %灰度转化为浮点数再除以255 i3=double(I3)/255; %灰度转化为浮点数再除以255 i4=double(I4)/255; %灰度转化为浮点数再除以255 i5=double(I5)/255; %灰度转化为浮点数再除以255 i6=double(I6)/255; %灰度转化为浮点数再除以255 i7=double(I7)/255; %灰度转化为浮点数再除以255 i8=double(I8)/255; %灰度转化为浮点数再除以255

a=(i1+i2+i3+i4+i5+i6+i7+i8)/8;%8个浮点数求平均值 subplot(3,3,9);%三行三列第九幅

imshow(a);%显示图片a

数字图像处理报告

(2)

I=imread('noise1.bmp');

subplot(3,3,1);%三行三列第一幅

imshow(I);%显示图片

title('原图')

B=medfilt2(I,[3,3]);%中值率波函数,模版大小为[3,3]

subplot(3,3,2);%三行三列第二幅

imshow(B);

title('中值滤波')

C=ordfilt2(I,6,ones(3,3));%二维顺序统计滤波函数, ones(3,3)决定模板大小 subplot(3,3,3);%三行三列第三幅

imshow(C);

title('二维顺序统计滤波')

h=fspecial('average',[3,3]);%均值滤波器

D=filter2(h,I)/255;%滤波

subplot(3,3,4);%三行三列第五幅

imshow(D)%显示图片

title('均值滤波')

h=fspecial('sobel');%边缘增强算子

D=filter2(h,I)/255;%滤波

subplot(3,3,5);%三行三列第六幅

imshow(D);%显示图片

title('sobel算子')

h=fspecial('prewitt');%边缘增强算子

D=filter2(h,I)/255;%滤波

subplot(3,3,6);%三行三列第七幅

imshow(D)%显示图片

title('Prewitt算子')

figure(2)

Q=medfilt2(I,[3,3]);%中值率波函数,模版大小为[3,3] subplot(2,2,1);%三行三列第二幅

imshow(Q);

title('模版大小为[3,3]的中值滤波函数')

W=medfilt2(I,[5,5]);%中值率波函数,模版大小为[3,3] subplot(2,2,2);%三行三列第二幅

imshow(W);

title('模版大小为[5,5]的中值滤波函数')

E=medfilt2(I,[7,7]);%中值率波函数,模版大小为[3,3] subplot(2,2,3);%三行三列第二幅

imshow(E);

title('模版大小为[7,7]的中值滤波函数')

R=medfilt2(I,[9,9]);%中值率波函数,模版大小为[3,3] subplot(2,2,4);%三行三列第二幅

imshow(R);

title('模版大小为[9,9]的中值滤波函数')

数字图像处理报告

数字图像处理报告

第二幅图只在读取图片的时候更改地址即可

数字图像处理报告

数字图像处理报告

(3)

clc

clear all

[I,map]=imread('noise1.bmp');

[M,N]=size(I);

F=fft2(I);%进行傅里叶变换

fftshift(F); %将灰度图像的二维不连续Frourier变换的零频率成分移到频谱的中心 Dcut=100;

D0=30; %定义D0

for u=1:M

for v=1:N

D(u,v)=sqrt(u^2+v^2);

BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(D0/Dcut)^2); %巴特罗斯滤波器的函数 end

end

BUTTERG=BUTTERH.*F;

BUTTERfiltered=ifft2(BUTTERG); %进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数

subplot(121)

imshow(I);

title('源图')

subplot(122)

imshow(BUTTERfiltered,map)

title('巴特罗斯低通滤波后的图像')

数字图像处理报告

思考题:

1. 高斯滤波器和均值滤波器的滤波效果比其余两模板的滤波效果要好。

2. 对比两图中经过滤波器处理过的图片,可知空间域卷积滤波中,模板的大小

对滤波的效果没有太大的影响,但是模板越大,处理后的图像越模板,从视觉上看,滤波的效果更好。

3. 用多幅图代数平均的方法去噪时,要求有在不同干扰下拍摄的多张图像。

实验感想:

平均与频域滤波器、空间域模板卷积(不同模板、不同尺寸)等方法在处理图片上的优势及劣势。

实 验 报 告

课程名称 数字图像处理 实验项目 图像的边缘检测 实验仪器 PC机 MATLAB软件

系 别 光电信息与通信工程学院 专 业 测控技术与仪器 班级/学号 测控0902/2009010776 学生姓名 林云峰 实验日期 20xx年12月 成 绩 指导老师 郑青玉

实验三 图像的边缘检测

一、实验目的

1.进一步理解边沿检测的基本原理。

2.掌握对图像边沿检测的基本方法。

3.学习利用Matlab图像工具箱对图像进行边沿检测。

二、实验原理

边缘检测在图像处理中可分为空域下的操作和频域下的操作。本实验以空域下的操作为主要实验内容,其他方法同学们可以在课后自行实验。空域下的图像边缘检测主要应用的是领域运算。

三、实验要求

对边缘检测的要求:使用Matlab图像处理工具箱中的不同方法对下图的边缘进行提取;注意观察不同操作对垂直方向、水平方向、斜方向的提取效果有何区别;注意观察提取后的边界是否连续,若不连续可采用什么方法使其连续。

数字图像处理报告

四、实验步骤

1.打开计算机,启动MATLAB程序;

2.调入实验指导书所示的数字图像,利用MATLAB图像工具箱中已有函数进行编程以实现图像的边缘检测;

3.显示原图和处理过的图像。

4.记录和整理实验报告

五、实验仪器

1.计算机;

2.MATLAB程序;

3.记录用的笔、纸。

六、实验报告要求

1.对所使用的图像边沿检测方法的原理进行说明。

2.给出程序清单和注释。

3.对不同处理方法进行说明、比较。

I=imread('Image1.bmp');

A=rgb2gray(I);

h1=[1,1,1;0,0,0;-1,-1,-1];%自定义矩阵,下同 h2=[0,1,1;-1,0,1;-1,-1,0];

h3=[1 0 -1;1 0 -1;1 0 -1];

h4=[0,-1,-1;1,0,-1;1,1,0];

j1=imfilter(A,h1);%对数组进行滤波,下同 j2=imfilter(A,h2);

j3=imfilter(A,h3);

j4=imfilter(A,h4);

x=uint8(j1);%unit8型的数据

y=uint8(j2);

z=uint8(j3);

a=uint8(j4);

D=imadd(x,y);%叠加

D1=imadd(D,z);

D2=imadd(D1,a)

subplot(321),

imshow(A)

title('原图')

subplot(322),

imshow(j1)

title('水平方向')

subplot(323),

imshow(j2)

title('45度方向')

subplot(324),

imshow(j3)

title('竖直方向')

subplot(325),

imshow(j4)

title('135度方向')

subplot(326),

imshow(D2)

title('叠加后的图像')

数字图像处理报告

用Prewitt算子分别进行水平方向、竖直方向、45°方向和135°方向扫描分别得到各个方向的边缘图像,让后叠加得到完整的边框图像

相关推荐