通信与信息工程学院
2012/2013 学年第一学期
实 验 报 告
实验课程名称 数字图像处理与图像通信实验
专
业
电子信息工程
学 生 学 号
学 生 姓 名
指 导 教 师
刘 瑜
指 导 单 位
图像与广播电视系
实验名称:图像的锐化处理
日 期:
2012 年 9
月 12 日
一、实验目的:←
学习用锐化处理技术来加强图像的目标边界和图像细节.对图像进行梯度算子、Roberts
算子、Sobel 算子边缘检测处理和 Laplace 算子边缘增强处理,使图像的某些特征(如
边缘、轮廓等)得以进一步的增强及突出。
二、实验内容:
(1)编写梯度算子和 Roberts 算子滤波函数。
(2)编写 Sobel 算子滤波函数。
(3)编写拉普拉斯边缘增强滤波函数。
(4)观察频域中用高低通滤波技术对图像进行的平滑和锐化处理。
三、实验方法及编程:
1、梯度算子
梯度算子是边缘检测的一种方法,有水平垂直分法和 Roberts 交叉梯度法。水平垂
直分法可同时检测水平和垂直边缘,因此这种算子对水平和垂直边缘比较敏感,而
Roberts 交叉算子则是检测 45°和 135°边缘的,可以根据图像边缘的特征来选择两种
算子之一。
(1) 水平垂直梯度算子
,(
yxg
)
|
,(
yxf
)
(
xf
,1
y
|)
|
,(
yxf
)
,(
yxf
|)1
f(x,y)
f(x+1,y)
1
-1
f(x,y+1)
-1
(2) Roberts 交叉算子
,(
yxg
)
|
,(
yxf
)
(
xf
,1
y
|)1
|
(
xf
,1
y
)
,(
yxf
|)1
f(x,y)
f(x+1,y)
f(x,y+1)
f(x+1,y+1)
function newbuf=RobFilter(oldbuf,M,N);
RobFilter()
%
for x=1:M-1
for y=1:N-1
newbuf(x,y)=abs(oldbuf(x,y)-oldbuf(x+1,y+1))+abs(oldbuf(x+1,y)-oldbuf
(x,y+1));
end
end
for x=1:M
end
newbuf(x,N)=oldbuf(x,N);
for y=1:N
end
newbuf(M,y)=oldbuf(M,y);
2、 Sobel 算子
g
S
2
x
S
2
y
式中:
S x
[
(
xf
[
(
xf
,1
y
,1
(2)1
xf
y
,1
(2)1
y
xf
,1
)
(
)
xf
y
(
,1
y
xf
,1
y
)]1
)]1
S y
[
(
xf
[
(
xf
,1
y
,(2)1
,1
yxf
y
)1
,(2)1
yxf
)1
(
xf
(
xf
,1
y
,1
y
)]1
)]1
f(x-1,y-1)
f(x,y-1)
f(x+1,y-1)
f(x-1,y)
f(x,y)
f(x+1,y)
f(x-1,y+1)
f(x,y+1)
f(x+1,y+1)
-1
0
1
-1
-2
-1
-2
0
2
0
0
0
-1
0
1
1
2
1
function newbuf=SobFilter(oldbuf,M,N);
% 函数名称:
%
for x =2:M-1
for y=2:N-1
SobFilter()
newbuf(x,y)=abs((oldbuf(x+1,y-1)+2*oldbuf(x+1,y)+oldbuf(x+1,y+1))-(ol
dbuf(x-1,y-1)+2*oldbuf(x-1,y)+oldbuf(x-1,y+1)))+...
abs((oldbuf(x-1,y+1)+2*oldbuf(x,y+1)+oldbuf(x+1,y+1))-(oldbuf(x-1,y-1)
+2*oldbuf(x,y-1)+oldbuf(x+1,y-1)));
end
end
for x=1:M
newbuf(x,N)=oldbuf(x,N);
newbuf(1,N)=oldbuf(x,N);
end
for y=1:N
end
newbuf(M,y)=oldbuf(M,y);
newbuf(1,y)=oldbuf(1,y);
3、 Laplace 边缘增强算子
如果对图像在 ),(
j
i 点进行 Laplace 边缘增强运算,则偏导数的线性组合可近似地表
示
,(
yxg
)
,(*5
yxf
)
[
(
xf
,1
y
)
(
xf
,1
y
)
,(
yxf
)1
,(
yxf
)]1
0
-1
0
-1
-1
-1
1
-2
1
-1
4
-1
-1
8
-1
-2
4
-2
0
-1
0
-1
-1
-1
1
-2
1
function newbuf=LapFilter(oldbuf,M,N);
% 函数名称:
%
for x=2:M-1
LapFilter()
for y=2:N-1
newbuf(x,y)=5*oldbuf(x,y)-(oldbuf(x+1,y)+oldbuf(x-1,y)+oldbuf(x,y+1)+
oldbuf(x,y-1));
end
end
for x=1:M
end
for y=1:N
end
newbuf(x,N)=oldbuf(x,N);
newbuf(1,N)=oldbuf(x,N);
newbuf(M,y)=oldbuf(M,y);
newbuf(1,y)=oldbuf(1,y);
四、实验结果及分析:(原图像和处理后的图像比较及分析)
(1) 由上图可以看到分别经过 Robert、Sobel、Laplace 算子后的图像。
(2) 梯度算子:梯度算子正比于相邻像素灰度值之查分,因此在图像缓慢区域其值很小,
而在线条轮廓等变化较大的部分其值较大。图像经过梯度算子运算后,留下灰度值
急剧变化的边沿处的点。
Sobel 算子:Sobel 算子采用了两列或两行加权之差值,因而对图像中的随机噪声有
一定的平滑作用。
Laplace 算子:该方法是一种各向同性的增强要求,即其边缘的曾强程度与边缘的
方向无关,从而可以满足不同走向的边缘锐化的要求。其产生的边沿锐化程度大于
其他边缘增强方法。
(3) 平滑滤波可以减少图像中的噪声,平滑后的图像经过锐化后,噪声的影响可以得到
很好的控制,得到的图像锐化效果更好,图像更清晰。
(4) 对于一幅图像,它的边缘、细节、跳跃部分及噪声都可以代表图像的高频分量,而
大面积的北京区和缓慢变化部分代表图像的低频分量,用频域低通除去高频分量就
能去掉噪声,从而使图像得到平滑。
图像中的边缘或线条等细节部分与图像频谱的高频分量相对应,因而采用高通滤波
让高频分量顺利通过,适当抑制低频分量,使图像的细节变得清楚,实现图像的锐
化。
高通用于锐化,低通用于平滑。
日 期:
2012 年 9
月 19 日
实验名称:图像信号的数字化
一、实验目的:
通过本实验了解图像的数字化参数取样频率(像素个数)、量化级数与图像质量的关系。
二、实验内容:
(1)编写并调试图像数字化程序。要求参数 k,N 可调。其中,k 为亚抽样比例,N 为
量化比特数。
(2)可选择任意图像进行处理,在显示器上观察各种数字化参数组合下的图像效果。
本实验是对 8 bit 数字化图像(将其近似看做连续图像)进行再取样和再量化。
三、实验方法及编程:
1、采样
在空间上用有限的点来代替连续无限的坐标值称为采样,采样结果为一幅 m*n 大小
的数字图像(m,n 分别为水平和垂直方向采样点的个数),采样点间隔的选取决定了
采样后的图像忠实地放映原图像的程度。
在水平和垂直方向做 1:k(k=2,4,6,8)的采样,得到新的采样图像。为了观察显
示的需要,再按 k:1 的比例将再采样的图像还原为原图像尺寸(如 256*256)。
2、量化
对每个采样点灰度值的离散化过程称为量化,即用有限个数来代替连续无限多的连
续灰度值。量化级数通常取为 2 的 N 次幂,称为对图像进行 N bit 量化。例如,若每
个像素的灰度值量化后用一个字节(8 bit)来表示,则量化为 0—255 共 256 个灰度
级。如果对每个像素分别取 N bit 的量化(N=7,6,…,2,1),其处理算法为:
f
g
),(
j
i
[
f
2/),(
i
j
8
N
8
N
2*]
式中,[/]表示取整运算。
通常把大小为 m*n ,灰度级为 L 级的数字图像称为空间分辨率为 m*n 像素,灰度级
分辨率为 L 级的数字图像。
图像数字化算法函数
原图像数组
原图像尺寸
取样间隔
量化比特值
Sample_Quant()
oldbuf
M N
k
n
newbuf
function newbuf=Sample_Quant(oldbuf,k,n)
%
% 参数:
%
%
%
%
%
% 说明:
%
% 素分别取 n 比特量化,为了观察显示的需要,再按 k:1 的比例将再取样的图像还原
% 为原图像尺寸。最后放入新的图像数组中并返回该数组。
[M,N]=size(oldbuf);
oldbuf=double(oldbuf);
M1=floor(M/k);
N1=floor(N/k);
for i=1:M1
在水平和垂直方向作 1:k 取样,得到新的取样图像,再根据量化公式对每个像
存放处理后的图像二维数组
for j=1:N1
X1=1+(i-1)*k;
Y1=2+(j-1)*k;
if(X1
当 Sample Interval 为 4,Quantization Bits 为 2 时,图像如下
(1) 原图像与处理后图像比较见上图。
(2) 比较图一与图二可以观察,当 N 值不变、k 值变化时,数字图像的区别;
比较图二与图三可以观察,当 k 值不变、N 值变化时,数字图像的区别;
(4)公示 6.1.1 是对每个像素分别进行 N bit 的量化,如果去掉 N82 只是将每个像素除以
N82 后取整,与原灰度值相差很大,不是量化的过程。