实验报告
课程名称:数字信号与信息处理
实验名称:图像特征定位
院(系):海洋科学与工程学院
专业班级:
姓名:
学号:
指导教师:
2012年9月17日
一、实验目的:
(1)、实验类型:设计性实验; (2)、掌握卷积和相关运算的基本原理与主要应用;
(3)、掌握利用MATLAB 语言环境进行灰度图像的读取和显示; (4)、掌握利用相关运算进行图像特征的定位的主要方法;
二、实验主要仪器设备,软件
(1)硬件准备:PC 机
(2)软件准备:Matlab 语言环境
三、实验的基本原理与内容:
1)实验原理:数字信号处理应用中广泛的应用到相关和卷积运算。
从技术上讲,相关和卷积是相同的过程。
相关运算常用它来度量两个序列相似的程度,可应用到在图像特性的定位。
二维卷积和相关运算的表达式如下:
()()()∑∑--=m
n
y n ,x m h n ,m f y ,x g
()()()∑∑--=
m
n
n y m x h n m f y x g ,,,
2)实验内容:应用Matlab 语言进行编程,实现在一个包含文字的图像中定位所有的字母“e ”。
图像matlab 工具箱自带图像名为‘text.png ’。
3)用到主要的Matlab 命令:imread ,imshow ,ginput ,im2double ,rot90,conv2(或corr2),
四、实验的步骤:
(1)图像的读取与显示
%读入显示图片
bw=imread('text.png')
imshow(bw)
(2)从图像中提取字母“e”的模板图形
%从图像中提取e
%采用ginput交互式找到“e”的四点坐标
[x,y]=ginput(2)
x1=int32(min(x));
x2=int32(max(x));
y1=int32(min(y));
y2=y1+x2-x1;
e=bw(y1:y2,x1:x2);
(3)进行输入图像类型的转换,将“e”模板与输入图像进行相关运算% 将e与图像进行相关运算
C1=conv2(im2double(bw),im2double(rot90(e,2)));
Cmax=max(C1(:));
figure
imshow(C1);
(4)设定阈值进行特征定位
%找出亮度最大值
%设定阀值
%显示特定定位
Cmax=max(C1(:));
thresh=Cmax-5;
C1=C1>thresh;
figure
imshow(C1);
%再相关运算
C=conv2(im2double(C1),im2double(e));
figure
imshow(C)
(5)可直接利用前面截取的“e”图像旋转90度,同理进行相关运算并设定阈值进行特征定位
e1=rot90(e,1);
%相关运算
C2=conv2(im2double(bw),im2double(rot90(e1,2)));
C2=C2>thresh;
%再相关运算
D1=conv2(im2double(C2),im2double(e1)); figure
imshow(D1)
(6)将两次定位进行组合
E=C+D1;
(7)将所有字母e提取出来。
%显示最终结果
Figure
imshow(E)
五、注意的事项和心得体会
(1)在M文件上编写,勿在command window上编写;
(2)要养成良好的编程习惯,条理清晰结构紧凑;
(3)为使程序更加清晰易懂,可加上必要的说明语句;
(4)注意matlab的格式和标点;
(5)为得到清晰完整的图像,提坐标定位时要准,否则图像可能不完整;(6)根据实际情况设定合适的阀值;
(7)要理解和熟悉相关运算的定义和公式的运用。
学习一项新的事项,难免会遇到一些意想不到的困难,要有谦虚好学积极向上的劲头,通过各种努力找出解决的方法才能取得进步。