实验目的
- 实验类型:设计性实验;
- 掌握卷积和相关运算的基本原理与主要应用;
- 掌握利用MATLAB语言环境进行灰度图像的读取和显示;
掌握利用相关运算进行图像特征的定位的主要方法;
实验主要仪器设备,软件
硬件准备:PC机
- 软件准备:Matlab语言环境
实验的基本原理与内容:
- 实验原理:数字信号处理应用中广泛的应用到相关和卷积运算。从技术上讲,相关和卷积是相同的过程。相关运算常用它来度量两个序列相似的程度,可应用到在图像特性的定位。二维卷积和相关运算的表达式如下:
实验内容:应用Matlab语言进行编程,实现在一个包含文字的图像中定位所有的字母“e”。图像matlab工具箱自带图像名为‘text.png’。
用到主要的Matlab命令:
imread
,imshow
,ginput
,im2double
,rot90
,conv2
(或corr2
)。
实验的步骤:
- 输入图像的读取与显示12>>bw = imread('text.png');>>imshow(bw);
- 从图像中提取字母“e” 的模板图形
用鼠标取点字母”e”左上角和右下角,划定范围,得出x,y坐标。
- 鼠标取点:123456789101112>> [x,y] = ginput(2)x =51.752662.7916y =10.750510.750523.8922
求所取矩形的中点,并以该矩形的中心作为基准,将矩形转换为正方形:
1234>> l = min(x(2)-x(1) , y(2)-y(1));>> half_l = int32(0.5*l);>> ave_x = int32(0.5*(x(1)+x(2)));>> ave_y = int32(0.5*(y(1)+y(2)));提取字母模板”e”:
12>> letter1 = bw(ave_y-half_l:ave_y+half_l, ave_x-half_l:ave_x+half_l);>> imshow(letter_1)进行输入图像类型的转换,将“e”模板与输入图像进行相关运算
1>> xcorr2(im2double(bw),im2double(letter_1))设定阈值进行特征定位
123>> le_max=max(c1(:));>> thresh=le_max-5; %%减5是为了降噪>> imshow(c1>thresh);
将“e”与上一步所得特征定位图做卷积运算提取字母“e”
1>>imshow(conv2(im2double(m1),im2double(letter_1)));将模板“e”图像旋转90度,同理进行相关运算并设定阈值进行特征定位,然后进行卷积得到纵向的“e”
123>> letter_2 = rot90(letter_1,1);>> c2 = xcorr2(im2double(bw),im2double(letter_2));>> imshow(conv2(im2double(m2),im2double(letter_2)));
- 将两次运算得到的“e”相加,得到最终结果1>> imshow((c1>thresh) + (c1>thresh));
附完整代码
|
|