《数字图像处理》课内实验_new

《数字图像处理》课内实验_new
《数字图像处理》课内实验_new

《数字图像处理》课内实验

实验一 直方图均衡

一、实验题目:

直方图均衡

二、实验目的:

在学习图像直方图的概念、计算方法、性质和相关使用基础上,生成、绘制

图像的直方图,并使用MATLAB 编程实现图像直方图均衡化程序。 三、实验内容:

(1)计算并绘制图像直方图;

(2)编程实现图像的直方图均衡化处理,显示均衡前后的直方图和图像;

四、预备知识:

(1)熟悉图像读写和显示; (2)理解图像直方图的概念及用途;

(3)理解直方图均衡化的概念及使用背景;

五、实验原理:

在对图像进行处理之前,了解图像整体或局部的灰度分布情况非常必要。

对图像的灰度分布进行分析的重要手段就是建立图像的灰度直方图(Density Histogram ),利用图像灰度直方图,可以直观地看出图像中的像素亮度分布情况;通过直方图均衡化,可以对图像的质量进行调整。

(1)生成并绘制图像的直方图

假设一幅数字图像的像素总数为N ,在范围[0,G]内共有L 个灰度级,其

直方图定义为离散函数()k k n r h =,其中,r k 是区间[0,G]内的第K 级的亮度,n k 是灰度级为r k 的图像中的像素数。

对于uint 8类图像,G 的值为255;对于uint 16类图像,G 的值为65535;对于double 类图像,G 的值为1.0。记住,MATLAB 中的索引不能为0,故r 1相当于灰度级0,r 2相当于灰度级1,如此等等,r L 相当于灰度级G 。其中,uint 8类图像或uint 16类图像中G=L-1。

通常,会用到归一化直方图,即用所有元素h(r k )除以图像中的像素总数N 所得到的图形:

P(r k )表示灰度

级r k 出现的频数。

MATLAB 图像处理工具箱提供了imhist 函数来计算和显示图像的直方图,其调用格式为:

imhist(I,b)

[COUNTS,X] = imhist(I)

其中I 为输入图像,b 为指定的灰度级数目,默认值为256。[COUNTS,X]=imhist(…)返回直方图统计的数据和相应的灰度级向量X 。使用表达式p= imhist(I,b)/N 就可简单地获得归一化直方图,这里N 为图像中的像素总数。显示图像’lean.bmp ’的直方图及归一化直方图,如图1.2.1所示。

(a) 原图 (b) 直方图 (c) 归一化直方图

图1.2.1 灰度图像的直方图及归一化直方图

如果图像的灰度分别集中在较窄的区间,从而引起图像细节的模糊,为了增强图像,可通过改善各部分亮度的比例关系,即通过直方图的方法来实现。这种方法是以概率论为基础的,常用的方法有直方图均衡化和直方图匹配(规定化)。

(2) 直方图均衡化

直方图均衡化也叫做直方图均匀化,是将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像,此时图像的熵最大,图像所包含的信息量最大,且扩展了像元取值的动态范围,从而达到增强图像整体对比度的效果。

设一幅图像总像元数为N ,灰度级的个数为L ,第K 个灰度级r k 出现的频数为n k ,则第k 灰度级出现的概率为

()()1,...,1,0,

10-=≤≤=

L k r N

n r p k k

k r

此时变换函数可表示为

()()()1,...,1,0,

100

-=≤≤===∑

∑==L k r N

n r p r T s k k

j j k j j r k k

()()L

k N n

N r h r p k k k ,...,2,1,

===

根据原图像的直方图统计值就可算出均衡化后各像元的灰度值。直方图上灰度分布较密的部分被拉伸;灰度分布较稀疏的部分被压缩,使图像对比度总体上得到增强。

MATL AB 图像处理工具箱提供了直方图均衡函数histeq 。其调用格式为:

J = histeq(I,n); [J,T] = histeq(I,…);

其中,n 是均衡化后的灰度级数目,是一个可选参数,缺省值是64。[J,T]=histeq(I,…)返回能从图像I 的灰度直方图变换成图像J 的直方图的变换函数T 。显示图像’RSImg.gif ’的直方图均衡化前后的图像及对应的直方图,如图2-3所示。

(a)原图

像 直方图均衡化后图

像 (b)

(c) 原图的直方图 (d) 均衡化后的直方图

1.2.3

直方图均衡化前后的图像及其直方图

经过

均衡化后,原图中

较暗区

域中的一些细节更清晰。

六、实验步骤:

(1)打开一幅灰度图像,利用MATLAB 工具箱所提供的函数计算并绘制图

像的直方图和归一化直方图;

(2)利用相应的MATLAB 函数对灰度图像进行直方图均衡化,显示均衡化后的图像及对应的直方图,分析均衡化后图像有何变化,均衡化后的直方图有何特点;

七、思考题

(1) 灰度直方图可以反映一幅图像的哪些特征? (2) 均衡化后的直方图有何特点?

八、实验程序代码:

(1)生成并绘制灰度图像的直方图及归一化直方图

clear all ;

I=imread('lena_gray_256.tif '); %打开一幅灰度图像 [m,n]=size(I);

p=m*n;

J=imhist(I)./p; %计算图像的归一化直方图

subplot(1,3,1),imshow(I);

subplot(1,3,2),imhist(I,64);

subplot(1,3,3),plot(J);

(2)直方图均衡化

clear all;

Im=imread('region.jpg');

J=histeq(Im); %均衡化

subplot(2,2,1);

imshow(Im);

title('原图'); %显示原图

subplot(2,2,2);

imhist(Im);

title('原图直方图'); %显示原图的直方图

subplot(2,2,3);

imshow(J);

title('均衡化结果'); %显示均衡化后的图像

subplot(2,2,4);

imhist(J);

title('均衡化结果的直方图'); %显示均衡化后的直方图

实验二频域图像增强

一、实验题目:

频域图像增强

二、实验目的:

掌握基于频域的图像增强方法。

三、实验内容:

(1)编程实现图像的理想低通和高通滤波;

(2)编程实现图像的巴特沃斯低通和高通滤波。四、预备知识:

(1)熟悉MATLAB 图像输入输出操作; (2)熟悉图像的频域变换处理; (3)熟悉二维频谱的显示方法。

五、实验原理:

图像增强是对图像进行加工,以得到视觉效果更好或更有用的新图像。图像增强在处理方法上可分为基于空域的图像增强和基于频域的图像增强。

频域图像增强的步骤:首先将图像变换到频域,然后在频域进行需要的滤波,即和滤波器转移函数相乘,最后反变换回时域得到增强的图像。常用的频域增强方法有低通滤波、高通滤波、带通和带阻滤波和同态滤波。

2-D 理想滤波器转移函数:

低通:???=01),(v u H 00),(),(D v u D D v u D >≤, 高通:???=01),(v u H 0

),(),(D v u D D v u D ≤> (1.6.1)

0D 是非负数,22(,)D u v u v =+(,)u v 到频率平面原点的距离。

阶数为n ,截断频率为0D 的2-D 巴特沃斯滤波器转移函数:

201

(,)1[(,)/]n

H u v D u v D =

+低通:

高通: []

n

v u D D v u H 20),(/11

),(+=

(1.6.2) 六、 实验步骤:

(1) 读入图像;

(2) 实现图像的理想低通和高通滤波; (3) 实现图像的巴特沃斯低通和高通滤波。

七、 思考题目:

分析为什么图像通过低通滤波器后变得模糊?为什么通过高通滤波器后得

到锐化结果?

八、 实验程序代码:

图像频域滤波可用fft2函数把图像变换到频域,在频域按公式(1.6.1)、

(1.6.2)分别实现频域的理想高低通滤波和频域的巴特沃斯高低通滤波,最后用ifft2反变换到时域得到最后结果。二维频谱的显示可用函数mesh 完成。

用巴特沃斯滤波器对图像进行低通和高通滤波的例子见图1.6.1。

图1.6.1 图像频率滤波

完整的代码:

%%%%理想低通和高通

clc;

clear;

data4=imread('lena.gif');

subplot(3,2,1);

imshow(data4);

title('原图');

i=fft2(data4);

subplot(3,2,2);

i=fftshift(i);

z=log(abs(i));

x=0:1:255;

y=0:1:255;

[x,y]=meshgrid(x,y);

mesh(z); %以三维坐标显示该图像频谱图

title('原图频谱');

[n,m]=size(i); %对该图进行低通滤波

for k=1:1:n

for l=1:1:m

if (k^2+l^2)>=190^2 %选取D=190

result(k,l)=0;

else result(k,l)=i(k,l);

end

end

end

subplot(3,2,4);

z=log(abs(result)); %三维方式显示低通滤波后的频谱图x=0:1:255;

y=0:1:255;

[x,y]=meshgrid(x,y);

mesh(z);

title('理想低通滤波后的频谱');

subplot(3,2,3); %新建图像显示窗口

result=fftshift(result); %滤波后的数据去中心化

b=ifft2(result); %逆傅里叶变换

imshow(uint8(abs(b)));

title('理想低通滤波后的图像');

subplot(3,2,6); %新建图像显示窗口

% [n,m]=size(c); %对原图进行高通滤波

for k=1:1:n

for l=1:1:m

if (k^2+l^2)<=190^2 %选取D=190

result(k,l)=0;

else result(k,l)=i(k,l);

end

end

end

z=log(abs(result));

x=0:1:255; %三维方式显示高通滤波前的频谱图y=0:1:255;

[x,y]=meshgrid(x,y);

mesh(z);

title('理想高通滤波后的频谱');

subplot(3,2,5);

result=fftshift(result); %滤波后的数据去中心化

d=ifft2(result); %逆傅里叶变换

imshow(uint8(abs(d)));

title('理想高通滤波后的图像');

%频域增强(巴特沃斯原型)

%二阶巴特沃斯(Butterworth)低通滤波器

%clc;

%clear;

Figure;

J1=imread('lena.gif');

subplot(3,2,1);

imshow(J1);

title('原图');

f=double(J1);

g=fft2(f); % 傅立叶变换

g=fftshift(g); % 转换数据矩阵

subplot(3,2,2);

x=0:1:255;

y=0:1:255;

[x,y]=meshgrid(x,y);

z=log(abs(g)); %取幅度

mesh(z); %以三维坐标显示该图像频谱图

title('原图频谱');

[M,N]=size(g);

nn=2; % 二阶巴特沃斯(Butterworth)低通滤波器

d0=20;

m=fix(M/2); n=fix(N/2);

for i=1:M

for j=1:N

d=sqrt((i-m)^2+(j-n)^2);

h=1/(1+0.414*(d/d0)^(2*nn)); % 计算低通滤波器传递函数 result(i,j)=h*g(i,j);

end

end

subplot(3,2,4);

x=0:1:255;

y=0:1:255;

[x,y]=meshgrid(x,y);

z=log(abs(result)); %取幅度

mesh(z); %以三维坐标显示该图像频谱图

title('低通滤波后的频谱');

result=ifftshift(result);

J2=ifft2(result);

J3=uint8(abs(J2));

subplot(3,2,3);

imshow(J3);

title('低通滤波后的图像');

%利用二阶巴特沃斯(Butterworth)高通滤波器

nn=2; % 二阶巴特沃斯(Butterworth)高通滤波器

d0=5;

m=fix(M/2);

n=fix(N/2);

for i=1:M

for j=1:N

d=sqrt((i-m)^2+(j-n)^2);

if (d==0)

h=0;

else

h=1/(1+0.414*(d0/d)^(2*nn));% 计算传递函数 end

result(i,j)=h*g(i,j);

end

end

subplot(3,2,6);

x=0:1:255;

y=0:1:255;

[x,y]=meshgrid(x,y);

z=log(abs(result)); %取幅度

mesh(z); %以三维坐标显示该图像频谱图

title('高通滤波后的频谱');

result=ifftshift(result);

J2=ifft2(result);

J3=uint8(abs(J2));

subplot(3,2,5);

imshow(J3);

title('高通滤波后的图像');

实验三图像边缘检测和连接一、实验题目:

图像边缘检测和连接

二、实验目的:

掌握图像边缘检测的主要原理和常用方法;依据边缘检测理论,实现灰度图像一阶和二阶边缘检测方法;编程实现Hough变换提取直线;启发学生依据边缘特征进行图像分析和识别,提高学生图像处理和分析能力和实际动手能力。三、实验内容:

(1)编程实现一阶差分边缘检测算法,包括Robert梯度算子、Prewitt算子、Sobel算子等;

(2)编程实现二阶差分拉普拉斯边缘检测算法以及LoG检测法和Canny检测法;

(3)分析和比较各种边缘检测算法的性能;

(4)编程实现Hough变换提取直线

(5)分析Hough变换检测性能;

四、预备知识:

(1)熟悉图像读写和显示;

(2)熟悉图像分割理论;

(3)熟悉Hough变换的基本原理;

(4)熟悉Hough变换提取直线的方法;

五、实验原理:

1、边缘检测

图像边缘是图像的重要特征,是图像中特性(如像素灰度、纹理等)分布的不连续处,图像周围特性有阶跃变化或屋脊状变化的那些像素集合。图像的边缘部分集中了图像的大部分信息,一幅图像的边缘结构和特点往往是决定图像特质的重要部分。图像边缘的另一个定义是指其周围像素灰度变化不连续的那些像素的集合。边缘广泛存在于物体和背景之间、物体和物体之间,因此,边缘是图像分割、图像理解及图像识别的重要特征。

图像边缘检测主要用于增强图像中的轮廓边缘、细节以及灰度跳变部分,形成完整的物体边界,达到将物体从图像中分离出来或将表示同一物体表面的区域

检测出来的目的。目前为止最通用的方法是检测亮度值的不连续性,用一阶和二阶导数检测的。

(1)微分法

微分法的目的是利用微分运算求信号的变化率,加强高频分量的作用,从而使轮廓清晰。遵循如下两个基本准则之一:找到亮度的一阶导数在幅度上比指定的阈值大的地方;找到亮度的二阶导数有零交叉的地方。

(2)差分边缘检测方法

利用像素灰度的一阶导数算子在灰度迅速变化处得到高值来进行奇异点的检测。它在某一点的值就代表该点的边缘强度,通过对这些值设置阈值来进一步得到边缘图像。差分边缘检测方法是最原始、最基本的方法。但要求差分方向和边缘方向垂直,这就需要对图像的不同方向(一般为垂直方向、水平方向和对角线方向)都进行差分运算,增加了实际运算的繁琐性,目前很少采用。

(3)Roberts 边缘检测算子

Roberts 边缘检测算子根据任意一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差,即:

然后根据式(1.7.2)计算出Roberts 的梯

度幅度值:

它们的卷积算子为:

?

?

?

???-????

???-?0110:1001:f f y x Roberts 检测器较为简单,但具有一些功能上的限制,例如,它是非对称的,而且不能检测诸如45°倍数的边缘。然而,它还是经常用于硬件实现中,因为它既简单又快速。

(4)Sobel 边缘检测算子

对数字图像的每个像素,考察它上下左右邻点灰度的加权差,和之接近的邻点

的权大。据此,定义Sobel 算子如下:

卷积算子为:

()()()()

)

1.7.1(,11,1,1,j i f j i f f j i f j i f f y x +-+=?++-=?())

2.7.1(,f f j i R y x ?+?=()()()()[]()()()[]()()()[]()()()[])

3.7.1(1,11,21,11,11,21,11,1,121,11,1,121,1,-++-+---++++++-++-+-+---+++++-+=?+?=j i f j i f j i f j i f j i f j i f j i f j i f j i f j i f j i f j i f f

f j i s y x

Sobel 算子很容易在空间上实现,边缘检测效果较好,且

受噪声的影响也较小。邻域增大抗噪性会更好,但计算量也会增大,得出的边缘也会相应变粗。Sobel 算子会检测出许多伪边缘,边缘定位精度不够高,在精度要求不高时是一种较常用的边缘检测方法。

(5)Prewitt 边缘检测算子 Prewitt 边缘检测算子模板如下: 图像中的每个像素都用这两个核作卷积,一个核

对垂直边缘影响最大,另一个核对水平

边缘影响最大。两个卷积的绝对值的最大值作为该点的输出值。不能简单的将小于0的值处理为0,这样会丢失信息。它比Sobel 检测器在计算上要简单一些,但比较容易产生一些噪声。

(6)拉普拉斯边缘检测算子

拉普拉斯边缘检测算子是一种二阶微分算子,和其它边缘检测方法的不同之处在于,该方法是一种各向同性的检测方法,即其边缘的增强程度和边缘的方向无关,从而可以满足不同走向的边缘锐化的要求。

定义如下:

几种常用的实现Laplace 运算的检测模板如

下:

????

?

?????--------????

?

?????----????

?

?????----111181111101040101010141010 拉普拉斯算子自身很少被直接用作边缘检测,因为二阶导数对噪声具有无法接受的敏感性,它的幅度会产生双边缘,而且它不能检测边缘的方向。然而,当和其它边缘检测技术组合使用时,拉普拉斯算子是一种有效的补充方法。例如,虽然它的双边缘使得它不适合直接用于边缘检测,但该性质可用于边缘定位。

(7)Laplacian of a Gaussian(LoG)检测器

??

???

?????---??????

?

????---?101202101:121000121:f f y x ??

??

?

?????---???

??

?

?????---?101101101:111000111:f f y x )4.7.1(2

2222

y f

x f f ??+

??=?

高斯函数 其中,r 2=x 2+y 2,σ是标准偏差。这是一个

平滑函数,若和

一幅图像卷积,则会使图像变模糊。模糊程度

由σ的值决定。该函数的拉普拉斯算子为:

())6.7.1(2

2

24

222

σσσr e r r h -??

????--=?

求二阶导数是线性运算,所以用()r h 2?对图像进行卷积和先用平滑函数对图像卷积再计算结果的拉普拉斯算子是一样的。这是LoG 检测器最关键的概念,用

()r h 2?对图像卷积会产生两个效果:是图像变平滑(从而减少噪声);计算拉普

拉斯算子,以便产生双边缘图像。然后,定位边缘就是找到两个边缘之间的零交叉。

(8)Canny 边缘检测器

Canny 检测器的效果较好,更适合用于检测真正的弱边缘。Canny 算子给出了一个好的边缘检测算子的3个指标:低失误率,即真正的边缘点尽可能提取,非边缘点尽可能不提取;高位置精度,检测的边缘应尽可能接近真实边缘;对每一个边缘点有唯一的响应,即得到单像素宽度的边缘。 (9)各种算子的MATLAB 实现及效果比较 在MATLAB 中可以由edge 函数实现各算子对边缘的检测,其调用格式为:

BW = edge(I,’METHOD’)—自动选择阈值用指定的算子进行边缘检测; BW = edge(I,’METHOD’,THRESH)—根据给定的阈值THRESH 用指定的算子进行边缘检测,忽略所有小于阈值的边缘。当THRESH 为空时,自动选择阈值;

[BW, THRESH] = edge(I,’METHOD’,…)—返回edge 使用的阈值,以确定哪个梯度值足够大到可以称为边缘点。

其中,I 为输入图像。返回图像BW 为和I 同大的二值图像,1表示边缘,0表示非边缘。I 是unit8型、unit16型,或者是double 型,BW 是unit8型。

METHOD :使用检测算子的类型,经常使用的有:

sobel :缺省值,用导数的sobel 近似值检测边缘,那些梯度最大的点返回边缘。 roberts :用导数的roberts 近似值检测边缘,那些梯度最大的点返回边缘。

prewitt :用导数的prewitt 近似值检测边缘,那些梯度最大的点返回边缘。

())

5.7.1(2

22σ

r e

r h -

-=

LoG :用LoG 算子检测边缘。

Canny :用Canny 算子检测边缘。

THRESH :指定的阈值,所有不强于thresh 的边缘都被忽略。

使用几种典型边缘检测算子得到的边缘图像如图1.7.2所示。

(a) 原图像 (b) Sobel 检测的边缘

(c)Roberts 检测的边缘 (d) Prewitt 检测的边缘

(e) LoG 检测的边缘 (f) Canny 检测的边缘

图1.7.2 使用几种典型边缘检测算子得到的边缘图

由图可见,Canny 算子的检测结果明显优于其它几个检测算子,除了检测到要求的特征外,还产生了最清晰的映射。

2、边缘连接

Hough 变换是图像处理中从图像中识别几何形状的基本方法之一。Hough 变换的基本原理在于利用点和线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。也即把检测整体特性转化为检测局部特性。比如直线、椭圆、圆、弧线等。

Hough 变换检测直线的原理

Hough 变换的核心是两个坐标系的变换。总所周知,一个点或者一个线段在不同坐标系下的表现形式是不同的。图像空间中一个像素的位置坐标对应Hough 空间(Hough 变换以后的空间,极坐标空间较常用)中的一条曲线,即直角坐标系中的点(x,y)和极坐标系中的正弦曲线相对应。

)1.5.2(sin cos θθρy x +=

如果图像空间中n 个像素共一直线,那么它们Hough 空间中的n 条正弦曲线有一个公共交点如图5-1所示。把一幅图像中的所有有效像素(如二值化后的黑色像素)均对应到Hough 空间,在Hough 空间通过某交点的正弦曲线越多,此点所对应的图像空间的直线存在的可能性越大。将有较多正弦曲线通过的交点称做兴趣点(Point of Intereste, POI),Hough 空间的兴趣点越多说明图像空间的直线越多。在Hough 空间中对通过兴趣点的正弦曲线数进行简单的累加统计操作来完成直线检测任务。

(a) 图像空间的点 (b) 参数空间的正弦曲线

图2.5.1 Hough 变换检测直线

图2.5.1(a)中ρ为从原点到直线的垂直距离,θ为从x 轴算起的角度,这条

直线在ρ-θ平面中为一点,见图2.5.1(b)。

Hough 变换检测直线的算法步骤如下:

①图像预处理,一般Hough 变换只适应于黑白图像,即Hough 变换之前应首先进行图像边缘提取;

②初始化一个ρ、θ平面的数组。一般ρ方向上的量化数目为对角线方向像素数,θ方向上的量化间距为2°;

③顺序搜索图像的所有黑点,对每一个黑点,按式(5.1)计算ρ、θ取不同值,分别将对应的数组元素加1;

④求出数组中的最大值并记录对应的ρ、θ;

⑤绘出ρ、θ对应的直线。

Hough变换的基本策略是:由图像空间中的边缘数据点去计算参数空间中的参考点的可能轨迹,并在一个累加器中给计算出的参考点计数,最后选出峰值。

在matlab中,使用hough函数计算二值图像的标准Hough变换。调用格式为:[H, THETA, RHO] = HOUGH(BW);

[H, THETA, RHO] = HOUGH(BW,PARAM1,V AL1,PARAM2,V AL2);

其中BW是作过边缘提取的二值图像,H是Hough变换后得到的矩阵,THETA、RHO 分别对应Hough变换矩阵的每一列和每一行的θ值和ρ值。

PARAM1即为'ThetaResolution',它定义了Hough变换矩阵沿着theta轴的间隔,缺省值为1;

PARAM2即为'RhoResolution',它定义了Hough变换矩阵沿着rho轴的间隔,缺省值为1。

使用Hough变换进行线检测和链接的第一步是峰值检测。因为数字图像的空间中的量化、Hough变换的参数空间中的量化以及典型图像的边缘都不是很直这个事实,Hough变换的峰值一般都位于多个Hough变换单元中。

在matlab中,函数houghpeaks可用于在Hough变换中找到一组有意义的明显峰值。调用格式为:

PEAKS = HOUGHPEAKS(H,NUMPEAKS);

PEAKS = HOUGHPEAKS(...,PARAM1,V AL1,PARAM2,V AL2);

其中NUMPEAKS规定了能够识别的最多峰值数,缺省值为1;PEAKS是一个Q×2的矩阵,其中Q的取值范围0-NUMPEAKS。

PARAM1即为'Threshold',它是非负参数,缺省值为0.5*max(H(:)) ,H矩阵中高于Threshold的值才被认为是峰;

PARAM2即为'NHoodSize',它是一个二元向量[m,n],取值为正奇数,定义了峰值附近的邻域尺寸,当峰值确定后,每一个峰值附近的邻域值被设为0,缺省值取最小的奇数值大于或等于size(H)/50 。

找到的位置相关的像素用函数houghlines链接线段,调用格式为:

LINES = HOUGHLINES(BW, THETA, RHO, PEAKS);

LINES = HOUGHLINES(...,PARAM1,V AL1,PARAM2,V AL2);

其中PARAM1即为'FillGap',它是正实数,缺省值为20 ,当两线段间隔小于

'FillGap'数值时,被合并在一起;

PARAM2即为'MinLength',它是正实数,缺省值为40 ,融合后线段长度小于'MinLength'的被舍弃。

在这个例子中,使用函数hough, houghpeaks和houghlines来寻找图像中的一组线段。注:图像须首先边缘提取得到二值图才能进行hough变换,结果如图2.5.2。

(a) 原始图像(b) 带有所选5个峰值位置(c) Hough变换峰值

的Hough变换对应的线段

图2.5.2 使用Hough变换作线检测检测和连接

图2.5.2(b)显示了带有5个看起来很明显峰值位置重叠的Hough变换。图

2.5.2(c)显示了结果图像,其中检测到的线段叠加为绿色的粗线。

Hough变换运算量太大,且不考虑各点之间的距离信息,易于将不属于直线的点也连接到直线上,产生所谓过连接。实际中,通常可把图像分成小块,对各块图像利用Hough变换提取直线,然后将各直线连接起来,或增加变换过程中的遍历步径,来减少运算量。

六、实验步骤:

1、边缘检测

(1)打开一幅灰度图像,利用MATLAB工具箱所提供的edge函数,用典型的几种边缘检测算子,分别对图像进行边缘检测,显示检测结果;

(2)分析比较不同算子的检测效果;

2、边缘连接

(3)打开一幅灰度图像,利用MATLAB工具箱所提供的函数提取其边缘,得到边缘二值图;

(4)利用相应的MATLAB函数对该二值图像进行Hough变换,提取峰值点,链接峰值点得到线段;

七、思考题目:

(1)边缘的方向是什么意思?为什么要考虑边缘的方向?

(2)Hough变换原理是什么?

八、实验程序代码:

1、边缘检测

由edge函数实现各算子对图像的边缘检测

clear all;

I = imread('d:\office.bmp');

I=rgb2gray(I);

BW1 = edge(I,'sobel'); %利用Sobel算子进行边缘检测

BW2 = edge(I,'roberts'); %利用roberts算子进行边缘检测

BW3 = edge(I,'prewitt'); %利用prewitt算子进行边缘检测

BW4 = edge(I,'log'); %利用log算子进行边缘检测

BW5 = edge(I,'canny'); %利用canny算子进行边缘检测

subplot(2,3,1),imshow(I)

subplot(2,3,2),imshow(BW1)

subplot(2,3,3),imshow(BW2)

subplot(2,3,4),imshow(BW3)

subplot(2,3,5),imshow(BW4)

subplot(2,3,6),imshow(BW5)

2、边缘连接

使用Hough变换作线检测和连接

clear all;

RGB = imread('d:\M_M.bmp');

I=RGB;

%I = rgb2gray(RGB);

BW = edge(I,'canny'); % 利用Canny算子提取图像边缘

[H,T,R] = hough(BW,'RhoResolution',0.5,'ThetaResolution',0.5);

figure(1),

imshow(T,R,H,[],'notruesize'), axis on, axis normal

xlabel('\T'), ylabel('\R')

p = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));

%找到5个较明显的Hough变换峰值

hold on

plot(T(p(:,2)),R(p(:,1)),'s','color','white');

lines = houghlines(BW,T,R,p,'FillGap',10,'MinLength',10);

%查找并链接线段

figure, imshow(BW), hold on %在二值图中叠加显示这些线段for k = 1:length(lines)

xy = [lines(k).point1; lines(k).point2];

plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');

end

数字图像处理实验1

实验一 实验内容和步骤 练习图像的读取、显示和保存图像数据,步骤如下: (1)使用命令figure(1)开辟一个显示窗口 (2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示、二值图像和灰度图像,注上文字标题。 (3)保存转换后的灰度图像和二值图像 (4)在同一个窗口显示转换后的灰度图像的直方图 I=imread('BaboonRGB.bmp'); figure,imshow(I); I_gray=rgb2gray(I); figure,imshow(I_gray); I_2bw=Im2bw(I_gray); figure,imshow(I_2bw); subplot(1,3,1),imshow(I),title('RGB图像'); subplot(1,3,2),imshow(I_gray),title('灰度图像'); subplot(1,3,3),imshow(I_2bw),title('二值图像'); imwrite(I_gray,'Baboongray.png'); imwrite(I_2bw,'Baboon2bw.tif'); figure;imhist(I_gray);

RGB 图 像灰度图 像二值图 像 050100150200250 500 1000 1500 2000 2500 3000

(5)将原RGB 图像的R 、G 、B 三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R 、G 、B 分量的不同之处。 [A_RGB,MAP]=imread('BaboonRGB.bmp'); subplot(2,2,1),imshow(A_RGB),title('RGB'); subplot(2,2,2),imshow(A_RGB(:,:,1)),title('R'); subplot(2,2,3),imshow(A_RGB(:,:,2)),title('G'); subplot(2,2,4),imshow(A_RGB(:,:,3)),title('B'); (6)将图像放大1.5倍,插值方法使用三种不同方法,在figure(3)中显示放大后的图像,比较不同插值方法的结果有什么不同。将图像放大到其它倍数,重复实验;A=imread('BaboonRGB.bmp'); figure(3),imshow(A),title('原图像'); B=imresize(A,1.5,'nearest'); figure(4),imshow(B),title('最邻近法') C=imresize(A,1.5,'bilinear'); ; figure(5),imshow(C),title('双线性插值'); D=imresize(A,1.5,'bicubic'); figure(6),imshow(D),title('双三次插值 '); RGB R G B

数字图像处理实验指导书-河北工业大学2014实验一

数字图像处理 实验指导书 河北工业大学 计算机科学与软件学院

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像类型转换。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化称为采样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。

图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: 亮度图像(Intensity images) 二值图像(Binary images) 索引图像(Indexed images) RGB图像(RGB images) (1) 亮度图像 一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。若图像是double类,则像素取值就是浮点数。规定双精度型归一化亮度图像的取值范围是[0,1] (2) 二值图像 一幅二值图像是一个取值只有0和1的逻辑数组。 (3) 索引图像 索引颜色通常也称为映射颜色,在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。 一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。(4) RGB图像 一幅RGB图像就是彩色像素的一个M×N×3数组,其中每一个彩色相

数字图像处理

[1] 杨枝灵,王开.Visual C++ 数字图像获取、处理及实践应用.人民邮电出版社,2003 . [2] 李红俊,韩冀皖.数字图像处理技术及其应用.计算机测量与控制,2002.10(9):620~622 [3] W.K.Pratt.DIGITAL IMAGE PROCESSING.John wiley & Sons,inc.,1978 . Visual C++数字图像处理 作/译者:谢凤英赵丹培出版社:电子工业出版社 出版日期:2008年09月 ISBN:9787121067488 [十位:712106748X] 第1章 Visual C++数字图像编程基础主要介绍了使用Visual C++进行图像处理编程的一些基 本概念,其中包括调色板,设备相关位图,设备无关位图等等,除此之外,还设计了一个能用来操作DIB位图的ImgCenterDib类,后面的章节所介绍的算法都在这个ImgCenterDib类的基础上实现,从面向对象程序设计的角度来讲述这些图像处理算法的实现过程。 1 第2章 图像的灰度变换介绍图像灰度变换的概念、原理及典型算法,包括二值化和阈值处理,直方图的概念、绘制及直方图均衡,灰度的线性变换和灰度拉伸等。 58 第3章 图像的几何变换介绍几何变换的基本概念及典型算法,包括图像的缩放、旋转、平移、转置及镜像等变换,介绍图像几何校正的概念及典型校正算法,以及为了解决几何变换和校正问题所涉及的图像插值,包括近邻、双线性和立方卷积插值等。 109 第4章 图像的变换域处理变换域的处理方法使得各种图像处理技术得以在变换域空间实现,该部分内容重点介绍傅里叶变换与反变换,离散余弦变换和小波变换的基本原理与算法实现,并结合小波变换的多分辨分析特性,介绍小波变换在图像去噪中的应用实例。 161 第5章 图像的增强技术介绍图像获取过程中噪声的产生、噪声模型、信噪比的定义以及如何实现图像中随机噪声和高斯噪声的添加过程;同时,针对不同的应用需求和算法特点分别介绍了

数字图像处理教学大纲(2014新版)

数字图像处理 课程编码:3073009223 课程名称:数字图像处理 总学分: 2 总学时:32 (讲课28,实验4) 课程英文名称:Digital Image Processing 先修课程:概率论与数理统计、线性代数、C++程序设计 适用专业:自动化专业等 一、课程性质、地位和任务 数字图像处理课程是自动化专业的专业选修课。本课程着重于培养学生解决智能化检测与控制中应用问题的初步能力,为在计算机视觉、模式识别等领域从事研究与开发打下坚实的理论基础。主要任务是学习数字图像处理的基本概念、基本原理、实现方法和实用技术,并能应用这些基本方法开发数字图像处理系统,为学习图像处理新方法奠定理论基础。 二、教学目标及要求 1.了解图像处理的概念及图像处理系统组成。 2.掌握数字图像处理中的灰度变换和空间滤波的各种方法。 3.了解图像变换,主要是离散和快速傅里叶变换等的原理及性质。 4.理解图像复原与重建技术中空间域和频域滤波的各种方法。 5. 理解解彩色图像的基础概念、模型和处理方法。 6. 了解形态学图像处理技术。 7. 了解图像分割的基本概念和方法。 三、教学内容及安排 第一章:绪论(2学时) 教学目标:了解数字图像处理的基本概念,发展历史,应用领域和研究内容。通过大量的实例讲解数字图像处理的应用领域;了解数字图像处理的基本步骤;了解图像处理系统的组成。 重点难点:数字图像处理基本步骤和图像处理系统的各组成部分构成。 1.1 什么是数字图像处理 1.2 数字图像处理的起源

1.3.1 伽马射线成像 1.3.2 X射线成像 1.3.3 紫外波段成像 1.3.4 可见光及红外波段成像 1.3.5 微波波段成像 1.3.6 无线电波成像 1.3.7 使用其他成像方式的例子 1.4 数字图像处理的基本步骤 1.5 图像处理系统的组成 第二章:数字图像基础(4学时) 教学目标:了解视觉感知要素;了解几种常用的图像获取方法;掌握图像的数字化过程及其图像分辨率之间的关系;掌握像素间的联系的概念;了解数字图像处理中的常用数学工具。 重点难点:要求重点掌握图像数字化过程及图像中像素的联系。 2.1 视觉感知要素(1学时) 2.1.1 人眼的构造 2.1.2 眼镜中图像的形成 2.1.3 亮度适应和辨别 2.2 光和电磁波谱 2.3 图像感知和获取(1学时) 2.3.1 用单个传感器获取图像 2.3.2 用条带传感器获取图像 2.3.3 用传感器阵列获取图像 2.3.4 简单的图像形成模型 2.4 图像取样和量化(1学时) 2.4.1 取样和量化的基本概念 2.4.2 数字图像表示 2.4.3 空间和灰度级分辨率 2.4.4 图像内插 2.5 像素间的一些基本关系(1学时) 2.5.1 相邻像素 2.5.2 临接性、连通性、区域和边界 2.5.3 距离度量 2.6 数字图像处理中所用数学工具的介绍 2.6.1 阵列与矩阵操作

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

数字图像处理实验指导书

实验一 Matlab图像处理工具箱的初步练习 一、实验目的和任务 1、初步了解与掌握MA TLAB语言的基本用法; 2、掌握MA TLAB语言中图象数据与信息的读取方法; 3、掌握在MA TLAB语言中图像类型的转换。 二、实验仪器、设备及材料 1、计算机 2、MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) 3、实验所需要的图片 三、实验原理 将数字图像的RGB表示转换为YUV表示; Y=0.30R+0.59G+0.11B U=0.70R-0.59G-0.11B V=-0.30R-0.59G+0.89B 四、实验步骤 1、阅读资料并熟悉MatLab的基本操作 2、读取MATLAB中的图象数据 3、显示MATLAB中的图象文件。用MATLAB在自建的文件夹中建立m文件,在这个文件的程序中,将MA TLAB目录下work文件夹中的tree.tif 图象文件读出,用到imread,imfinfo等命令,观察一下图象数据,了解一下数字图象在MA TLAB中的处理就是处理一个矩阵的本质。 4、将3中的图象显示出来(用imshow)。 5、对MA TLAB目录下work文件夹中的flowers.tif进行真彩色图像、索引色图像、灰度图像、二值图像之间的相互变换,并显示。 6、进行真彩色图像RGB(lenacolor.jpg)、YIQ图像、HSV图像、YcbCr图像的相互转换,并显示。 五、实验报告要求 1、描述实验的基本步骤; 2、用图片给出步骤4、5、6中取得的实验结果; 六、实验所需图片

lenacolor.jpg 七、实验注意事项 1、学生应提前预习 2、请大家在E盘建一个目录(matlab),在每次启动时都要将这个目录加入到MATLAB的搜索路径中,添加的方法为File----Set Path----Tool---Add Path 八、思考题 1、图像之间转换的基础是什么,为什么可以实现相互的转换 九、附录 MATLAB简介 (1) MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MA TLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MA TLAB处理数字图像非常的方便。MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。 1、MATLAB中图象数据的读取 A、imread imread函数用于读入各种图象文件,其一般的用法为 [X,MAP]=imread(‘filename’,‘fmt’) 其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。 例:[X,MAP]=imread(’flowers.tif’,’tif’);

数字图像处理

院系:计算机科学学院 专业:计算机科学与技术 年级: 09级 课程名称:数字图像处理 组号: 25组 指导教师:孙阳光 学号: 姓名: 2012 年 6 月 13 日

年 级 班号学号 专 业 姓名实 验名称MATLAB图像处理编程基础 实验 类型 设计型综合型创新型 √ 实验目的或要求加深对数字图像处理理论课程的理解,进一步熟悉数字图像处理课程的相关算法和原理选择一副图像,叠加椒盐噪声,分别用邻域平均法和中值滤波法对该图像进行滤波,显示滤波后的图像,比较和分析各滤波器的效果。 选择一副图像,叠加零均值高斯噪声,设计一种处理方法,既能去噪声,又能保持边缘清晰。

实验原理(算法流程图或者含注释的源代码)二、算法原理 平滑滤波器用滤波模板确定的领域内象素的平均灰度值去代替图像中的每一个像素点的值,这种处理减少了图像灰度的“尖锐”变化,常称为邻域平均法。邻域平均法有力地抑制了噪声,同时也引起了模糊,模糊程度与邻域半径成正比。 中值滤波法是一种非线性平滑技术,它将每一象素点的灰度值设置为该点某邻域窗口内的所有象素点灰度值的中值.中值滤波法对消除椒盐噪音非常有效。 图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,这就需要利用图像锐化技术,使图像的边缘变的清晰。图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变的清晰。 三、Matlab代码 1: I = imread('eight.tif'); J = imnoise(I,'salt & pepper',0.02); subplot(231); imshow(I);title('原图象'); subplot(232); imshow(J);title('添加椒盐噪声图象'); k1 = filter2(fspecial('average', 3), J); k2 = filter2(fspecial('average', 5), J); k3 = filter2(fspecial('average', 7), J); k4 = filter2(fspecial('average', 9), J); subplot(233); imshow(uint8(k1));title('3×3模板平滑滤波'); subplot(234); imshow(uint8(k2));title('5×5模板平滑滤波'); subplot(235); imshow(uint8(k3));title('7×7模板平滑滤波'); subplot(236); imshow(uint8(k4));title('9×9模板平滑滤波'); I = imread('eight.tif'); J = imnoise(I,'salt & pepper',0.02); subplot(231); imshow(I);title('原图象'); subplot(232); imshow(J);title('添加椒盐噪声图象'); k1 = medfilt2(J); k2 = medfilt2(J,[5,5]); k3 = medfilt2(J,[7,7]); k4 = medfilt2(J,[9,9]); subplot(233); imshow(k1);title('3×3模板中值滤波'); subplot(234); imshow(k2);title('5×5模板中值滤波'); subplot(235); imshow(k3);title('7×7模板中值滤波'); subplot(236); imshow(k4);title('9×9模板中值滤波');

【数字图像处理】概念和原理题

概念和原理题 一、绪论部分 (一) 概念解释 1、 数字图像。 2、 数字图像处理。 (二) 简答题 1、 简述数字图像处理的三个层次。 2、 简述数字图像处理的基本内容。 3、 简述数字图像处理系统的基本组成。 二、数字图像基础部分 (一) 概念解释 1、图像数字化。 2、取样。 3、量化。 4、灰度分辨率。 5、空间分辨率。 (二)简答题 1、写出简单的图象形成模型的公式,并进行说明。 2、简述图像采样和量化的一般原则。 3、简述空间分辨率、灰度分辨率与图像质量的关系。 4、简述数字图像类型。 5、简述数字图像文件格式。 (三)分析题 1、写出“*”标记的像素的4邻域、对角邻域、8邻域像素的坐标。(坐标按常规方式 确定) 2 4、计算“*”标记的两点间的欧氏距离、城区距离和棋盘距离。 答: 图像处理 ,图像分割,模式识别

三、空间域图像增强部分 (一)概念解释 1、图像增强。 2、均值滤波器。 3、统计排序滤波器。 (二)简答题 1、简述空间域图像增强的三种增强方法。 2、简述图像反转、对数变换、幂次变换、分段线性变换等增强方法的特点及其适用范围。 2、简述直方图均衡化的实现步骤。 3、简述均值滤波器的工作原理和优缺点。 4、简述中值滤波器的工作原理和优缺点。 5、与Laplacian 算子相比,LOG 算子有什么优点? (三)分析题 1、计算下图的归一化直方图。 5 577666654444444544333333333333332222222322111113211000021110000 2、对下图进行直方图均衡化处理,并画出均衡后的图像及其直方图。 5 577666654444444544333333333333332222222 32211111 3211000021110000 3、对下面两幅图像进行异或运算。 4、对下列图像分别进行3*3均值滤波和3*3中值滤波,并比较它们的结果。

数字图像处理实验 实验二

实验二MATLAB图像运算一、实验目的 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验步骤 1.图像的加法运算-imadd 对于两个图像f x,y和 (x,y)的均值有: g x,y=1 f x,y+ 1 (x,y) 推广这个公式为: g x,y=αf x,y+β (x,y) 其中,α+β=1。这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。说明:两个示例图像保存在默认路径下,文件名分别为'rice.png'和'cameraman.tif',要求实现下图所示结果。 代码: I1 = imread('rice.png'); I2 = imread('cameraman.tif'); I3 = imadd(I1, I2,'uint8'); I4 = imadd(I1, I2,'uint16'); subplot(2, 2, 1), imshow(I1), title('?-ê?í???1'); subplot(2, 2, 2), imshow(I2), title('?-ê?í???2'); subplot(2, 2, 3), imshow(I3), title('8??í?????ê?'); subplot(2, 2, 4), imshow(I4), title('16??í?????ê?'); 结果截图:

2.图像的减法运算-imsubtract 说明: 背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。 示例代码如下: I1 = imread('rice.png'); background = imerode(I1, strel('disk', 15)); rice2 = imsubtract(I1, background); subplot(2, 2, 1), imshow(I1), title('?-ê?í???'); subplot(2, 2, 2), imshow(background), title('±3?°í???'); subplot(2, 2, 3), imshow(rice2), title('′|àíoóμ?í???'); 结果截图: 3.图像的乘法运算-immultiply

数字图像处理

信息工程学院实验报告 课程名称:数字图像处理 实验项目名称:数字图像处理的基础实验时间:班级:姓名:学号: 实验目的: 1.通过本次实验熟悉matlab语言 2.学会对图像的放大缩小处理 实验环境: Matlab软件 实验内容及过程: 1.数字图像采样过程 (1)实现图像4倍、16倍的减采样(缩小) 最简单的是减小一半,这样只需取原图的偶(奇)数行和偶(奇)数列构成新的图像。 (2)实现图像4倍、16倍的增采样(放大) 如果需要将原图像放大k*k倍,则将一个像素值添在新图像的k*k的子块中。 注意:减采样或者增采样过程可以使用灰度图像或者彩色图像。编程时候要特别注意灰度图像的数据是2维的,彩色图像的数据是3维的。 2. 数字图像灰度级变换过程 (1)将一幅彩色图像转换为256级灰度图像; (2)将一幅256级灰度图像分别转换为64级、16级、8级、2级灰度图像。 实验结果及分析:

1.数字图像采样过程 (1)实现图像4倍、16倍的减采样(缩小)设计程序 function Iw = resample(I,m) [a,b] = size(I); aa = floor(a/m); bb = floor(b/m); Iw=zeros(aa,bb); for i=1:aa for j=1:bb Iw(i,j)=I(m*(i-1)+1,m*(j-1)+1); end end Iw=uint8(Iw); clc;clear; close all; I=imread('cameraman.tif'); m=4; Iw=resample(I,m); imshow(I); imshow(Iw); n=16; Iw2=resample(I,n); figure:imshow(Iw2); figure:imshow(I); 实验结果 (2)实现图像4倍、16倍的增采样(放大) function Iw = resample2(I,m) [a,b] = size(I); for i=1:a for j=1:b Iw(m*i,m*j)=I(i,j); end end Iw=uint8(Iw);clc; clear; close all; I=imread('cameraman.tif'); m=4; Iw=resample2(I,m); imshow(I); imshow(Iw); figure:imshow(I);

数字图像处理——彩色图像实验报告

6.3实验步骤 (1)对彩色图像的表达和显示 * * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * * rgbcube(0,0,10); %从正面观察彩色立方体 rgbcube(10,0,10); %从侧面观察彩色立方 rgbcube(10,10,10); %从对角线观察彩色立方体 %* * * * * * * * * *索引图像的显示和转换* * * * * * * * * * f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %rgb图像转换成8色索引图像,不采用抖动方式 [X1,map1]=rgb2ind(f,8,'nodither'); figure,imshow(X1,map1); %采用抖动方式转换到8色索引图像 [X2,map2]=rgb2ind(f,8,'dither'); figure,imshow(X2,map2); %显示效果要好一些 g=rgb2gray(f); %f转换为灰度图像 g1=dither(g);%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);%显示灰度图像 figure,imshow(g1);%显示抖动处理后的二值图像 程序运行结果:

彩色立方体原图 不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像 灰度图像抖动处理后的二值图像

(2)彩色空间转换 f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %转换到NTSC彩色空间 ntsc_image=rgb2ntsc(f); figure,imshow(ntsc_image(:,:,1));%显示亮度信息figure,imshow(ntsc_image(:,:,2));%显示色差信息figure,imshow(ntsc_image(:,:,3));%显示色差信息 %转换到HIS彩色空间 hsi_image=rgb2hsi(f); figure,imshow(hsi_image(:,:,1));%显示色度信息figure,imshow(hsi_image(:,:,2)); %显示饱和度信息figure,imshow(hsi_image(:,:,3));%显示亮度信息 程序运行结果: 原图 转换到NTSC彩色空间

数字图像处理实验指导书

实验一数字图像处理编程基础 一、实验目的 1. 了解MATLAB图像处理工具箱; 2. 掌握MATLAB的基本应用方法; 3. 掌握MATLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验原理 略。 三、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 四、分析思考 归纳总结Matlab各个基本指令。 Dither 采用“抖动”方法从RGB 图像创建索引图像 grayslice 从灰度图像通过阈值处理创建索引图像 gray2ind 从灰度图像创建索引图像 ind2gray 从索引图像创建灰度图像 rgb2ind 从RGB 图像创建索引图像 ind2rgb 从索引图像创建RGB 图像 rgb2gray 从RGB 图像创建灰度图像

实验二 图像几何变换实验 一、实验目的 1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果; 2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现; 3.掌握matlab 编程环境中基本的图像处理函数。 二、实验原理 1. 初始坐标为(,)x y 的点经过平移00(,)x y ,坐标变为(',')x y ,两点之间的关系为:00 ''x x x y y y =+??=+?,以矩阵形式表示为: 00'10'01100 11x x x y y y ????????????=?????????????????? 2. 图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为: '100'01010011x x y y -????????????=?????????????????? '100'01010011x x y y ????????????=-?????????????????? 3. 图像缩小和放大变换矩阵相同: '00'0010011X y x S x y S y ????????????=?????????????????? 当1x S ≤,1y S ≤时,图像缩小;当1x S ≥,1y S ≥时,图像放大。 4. 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方

数字图像处理

数字图像处理 数字图像处理方法的研究源于两个主要应用领域:其一是为了便于人们分析而对图像信息进行改进:其二是为使机器自动理解而对图像数据进行存储、传输及显示。 从图像处理到计算机视觉这个连续的统一体内并没有明确的界线。然而,在这个连续的统一体中可以考虑三种典型的计算处理(即低级、中级和高级处理)来区分其中的各个学科。 低级处理涉及初级操作,如降低噪声的图像预处理,对比度增强和图像尖锐化。低级处理是以输入、输出都是图像为特点的处理。中级处理涉及分割(把图像分为不同区域或目标物)以及缩减对目标物的描述,以使其更适合计算机处理及对不同目标的分类(识别)。中级图像处理是以输入为图像,但输出是从这些图像中提取的特征(如边缘、轮廓及不同物体的标识等)为特点的。最后,高级处理涉及在图像分析中被识别物体的总体理解,以及执行与视觉相关的识别函数(处在连续统一体边缘)等。 图像获取是第一步处理。注意到获取与给出一幅数字形式的图像一样简单。通常,图像获取包括如设置比例尺等预处理。 图像增强是数字图像处理最简单和最有吸引力的领域。基本上,增强技术后面的思路是显现那些被模糊了的细节,或简单地突出一幅图像中感兴趣的特征。一个图像增强的例子是增强图像的对比度,使其看起来好一些。应记住,增强是图像处理中非常主观的领域。 图像复原也是改进图像外貌的一个处理领域。然而,不像增强,图像增强是主观的,而图像复原是客观的。在某种意义上说,复原技术倾向于以图像退化的数学或概率模型为基础。另一方面,增强以怎样构成好的增强效果这种人的主观偏爱为基础。 彩色图像处理已经成为一个重要领域,因为基于互联网的图像处理应用在不断增长。就使得在彩色模型、数字域的彩色处理方面涵盖了大量基本概念。在后续发展,彩色还是图像中感兴趣特征被提取的基础。 小波是在各种分辨率下描述图像的基础。特别是在应用中,这些理论被用于

数字图像处理论文

数字图像处理 题目指纹图像的分割技术 姓名 学号 院系 成绩 二O一一年十二月二十八日

指纹图像的分割技术 摘要 介绍了一种基于指纹多特征的指纹图像分割方法。首先简述了三种基于单一特征的指纹图像分割方法;基于灰度方差的指纹图象分割、基于方向信息的指纹图像分割和基于角度灰度均值的指纹分割的适用情况及利弊,然后介绍了将方向图法和灰度法两种分割方法合理结合起来的基于多特征的指纹图像分割方法,该方法首先将图像划分成多个不重叠的块,并计算各子块的灰度方差与均值,再根据各个图像块的灰度方差值与方差闲的关系,确定各子块是采用方向图法还是采用灰度法继续进行图像分割。实践证明,基于多特征的指纹图像分刻方法充分利用了指纹图像的特征,避免了单一特征的缺陷,从而能获取更加清晰质量更好的指纹图像为指纹的进一步识别提供了更好的条件。 关键词指纹图像图像分割分割技术 正文 自古至今人类中还没有发现不同的人具有相同的指纹, 并且同一指的指纹形和细节特征在一个人的一生中都保持不变。因此, 指纹一直被当作人的身份鉴定的可靠手段。 随着数字图像处理技术的不断发展以及图像处理必须具备的条件日益得到满足, 数字图像处理在计算机科学、信息学科、生物科学、医学等领域里得到广泛的重视和应用。而今科技也是相当的发达,因此,出现了一门独有的技术指纹图像分割技术。 图像分割所采用的基本原则是,使区域内部所考虑的特征或属性是相同或相近的,而这些特征或属性在相邻的区域中则不同,存在差异㈠。目前,国内外有许多指纹图像分割方法,从分割的操作方法和分割的精确程度上来分类,可以大致分成以下两类: 一类是按图块来进行操作的指纹图分割方法。唐良瑞㈡提出了基于D-S 证据理论的指纹图像分割方法,将D-S 证据理论运用到指纹图像的分割之中,利指纹识别的目的主要是确定两枚指纹是否相同,判断两枚指纹是否一致主要是判断指纹细节特征即纹线的突然终断点和叉点是否匹配。用图像块的方向和对比度信息实现了指纹图像分割。Mehtre㈢根据分块图像的梯度分布情况和灰度方差将这些块分成前景和背景。X. Chen㈣使用线性分类器对指纹图像块进行分类,从而实现了图像的分割。Q.Ren㈤提出了基于特征信息统计和基于前景边缘线搜索的两种指纹图像分割方法。 另一类是按像素点来进行操作的指纹图分割方法。蒋景英㈥将遗传算法和方向图相结合,实现了指纹图像的分割。A. M. Bazen㈦通过对像素点特征定义与分类,使用关于CMV 三个指标的线性分割器,将图像中的前景区和背景区分离。何余良㈧提出了一种基于马尔科夫随机场的指纹图像分割方法。 值得注意的一点是,虽然已经出现各种各样的图像分割方法,但至今为止还没有发现某一种对任何图像都有良好效果的图像分割算法,也就是说任何一种分

数字图像处理参考教材

数字图像处理参考教材 (Digital Image Processing ,Computer Image Processing)I.通用教材 I.1 容观澳,清华讲义,计算机图像处理, 2000年版, Pages 351 这是清华一本较早的教材,针对基本概念和方法,系统知识。 特点:1)着重本领域的基本概念、基本方法和系统知识。 2)理论结合实验,避开过多数学推导, 3) 重点介绍算法,免编程。这也是我们本科采取的策略。 内容:1)基本内容(有关图像数学、视觉、光学以及二维变换的基本理论2)图像改善:重点介绍图像增强,图像复原,还有图像重建 3)图像的上网、传输、压缩 4)图像的理解、分割、描述 5)图像的硬件系统设计 I.2 李介谷等,上海交大版,88年版,数字图像处理Pages 278 较早。全面介绍了图像处理的一些模型和算法,主要内容;数字图像的特征、品质及视觉;图像的增强处理;图像修复;图像重建;图像分析和理解;图像信息的编码和压缩。 对基本理论和基本技术介绍全面。 I.3 阮秋琦,电子工业版,01年版,数字图像处理学 Pages 562 主要内容:图像处理中的正交变换、图像增强、图像编码、图像复原、图像重建、图像分析、模式识别等。偏重于基本理论和方法。这本书强调了编码的内容。 全书强调基本理论和基本技术,有较多习题,附一套实验演示软件。 北方交大教材。 I.4 黄贤武等,电子科技大学版,2000年,数字图像处理与压缩编码技术, Pages538 主要加重了图像数据压缩技术的份量-这是多媒体处理技术的关键技术之一。对图形模式识别技术、无损压缩编码技术、预测编码、图像的变换编码、神

数字图像处理实验

《数字图像处理》 实验报告 学院:信息工程学院 专业:电子信息工程 学号: 姓名: 2015年6月18日

目录 实验一图像的读取、存储和显示 (2) 实验二图像直方图分析 (6) 实验三图像的滤波及增强 (15) 实验四噪声图像的复原 (19) 实验五图像的分割与边缘提取 (23) 附录1MATLAB简介 (27)

实验一图像的读取、存储和显示 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像的显示。 二、实验原理 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 三、实验设备 (1) PC计算机 (2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片 四、实验内容及步骤 1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件设为flower.jpg语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。 7.用imread()读入图像:Lenna.jpg 和camema.jpg; 8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;

用matlab数字图像处理四个实验

数字图像处理 实验指导书

目录 实验一MATLAB数字图像处理初步实验二图像的代数运算 实验三图像增强-空间滤波 实验四图像分割 3

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像间如何转化。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。 图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: ?亮度图像(Intensity images)

相关文档
最新文档