汽车标志识别设计 - MATLAB程序设计(2)

2019-03-16 20:10

找图像强度的二阶导数的零交叉点就能找到精确边缘点。 程序:

1 %边缘检测

2 grd=edge(bw2,'canny')%用canny算子识别强度图像中的边界

3 subplot(3,4,6);imshow(grd);title('图像边缘提取');%输出图像边缘

输出:

图像边缘提取

STEP7:对得到图像作开操作进行滤波:

数学形态非线性滤波,可以用于抑制噪声,进行特征提取、边缘检测、图像分割等图像处理问题。腐蚀是一种消除边界点的过程,结果是使目标缩小,孔洞增大,因而可有效的消除孤立噪声点;膨胀是将与目标物体接触的所有背景点合并到物体中的过程,结果是使目标增大,孔洞缩小,可填补目标物体中的空洞,形成连通域。先腐蚀后膨胀的过程称为开运算,它具有消除细小物体,并在纤细处分离物体和平滑较大物体边界的作用;先膨胀后腐蚀的过程称为闭运算,具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。对图像做了开运算和闭运算,闭运算可以使图像的轮廓线更为光滑,它通常用来消掉狭窄的间断和长细的鸿沟,消除小的孔洞,并弥补轮廓线中的断裂。 程序:

1 2 3 4 5 6 7 8

%对得到图像作开操作进行滤波

bg1=imclose(grd,strel('rectangle',[5,25]));%取矩形框的闭运算

subplot(3,4,7);imshow(bg1);title('图像闭运算[5,25]');%输出闭运算的图像

bg3=imopen(bg1,strel('rectangle',[5,19]));%取矩形框的开运算

subplot(3,4,8);imshow(bg3);title('图像开运算[5,19]');%输出开运算的图像

bg2=imopen(bg3,strel('rectangle',[11,24]));%取矩形框的开运算

9 subplot(3,4,9);imshow(bg2);title('图像开运算[11,24]');%输出开运算的图像

bg4=imsubtract(bg3,bg2);%两幅图相减

subplot(3,4,10);imshow(bg4);title('增强车标图像');%输出增强车标图像

输出:

图像闭运算[5,25]图像开运算[5,19]图像开运算[11,24]增强车标图像

STEP8:进行图像重构。小波图像分解,消除车标下方白色图案,图像重构,只保留车标二值化图像。

程序:

1 %图像重构,只保留车标二指化数据

2 bg5=imreconstruct(imerode(bg4,strel('disk',5)),bg4);

3 subplot(3,4,11);imshow(bg5);title('车标二值化图像');%输出车标二值4 化图像

输出:

车标二值化图像

STEP9:保存二值化图像中车标坐标位置: 程序:

1 2 3 4 5 6 7

%保存白色车标坐标信息

[x0,y0]=find(bg6==1);%找出二值图片中白色的点 pos=[x0';y0'];%把对应白色点的坐标存放到POS中,第一行对应第i个坐标的x,第二行对应第i个坐标的y xmax=max(pos(1,:)); xmin=min(pos(1,:)); ymax=max(pos(2,:)); ymin=min(pos(2,:));

STEP10:根据车标位置,在原图上标示出车标: 程序:

1 2 3 4 5 6 7 8

y=xmin;x=ymin;,%起始坐标(颠倒的) w=ymax-ymin;h=xmax-xmin;%w为宽 h为长 initstate = [x y w h];

subplot(3,4,12);imshow('1.jpg'),title('车标标识效果图');

rectangle('Position',initstate,'LineWidth',1,'EdgeColor','r'); figure,imshow('1.jpg'),title('车标标识效果图');

rectangle('Position',initstate,'LineWidth',1,'EdgeColor','r');

输出:

车标标识效果图


汽车标志识别设计 - MATLAB程序设计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:射频微波(知识点)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: