数字图像处理课程设计 基于Matlab的数字图像处理.docx

上传人:b****6 文档编号:4722307 上传时间:2022-12-07 格式:DOCX 页数:3 大小:18.85KB
下载 相关 举报
数字图像处理课程设计 基于Matlab的数字图像处理.docx_第1页
第1页 / 共3页
数字图像处理课程设计 基于Matlab的数字图像处理.docx_第2页
第2页 / 共3页
数字图像处理课程设计 基于Matlab的数字图像处理.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理课程设计 基于Matlab的数字图像处理.docx

《数字图像处理课程设计 基于Matlab的数字图像处理.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计 基于Matlab的数字图像处理.docx(3页珍藏版)》请在冰豆网上搜索。

数字图像处理课程设计 基于Matlab的数字图像处理.docx

数字图像处理课程设计基于Matlab的数字图像处理

数字图像处理课程设计基于Matlab的数字图像处理

        数字图像处理课程设计    基于Matlab的数字图像处理  ——图像识别    院系  信息技术学院  专业班级软件2班  学号XXXXXXXXXX  姓名  XXXX  指导教师XXXXXX  课程设计时间2014年12月  目录  摘要...........................................................3一、课程设计目的及任务.........................................4二、设计的内容.................................................6三、设计的实现.................................................7四、系统调试..................................................18五、课程设计总结与体会........................................20

      二、设计的内容  学习MATLAB程序设计,利用MATLAB函数功能,设计和实现一种身份证号识别系统。

身份证号识别系统的基本工作原理为:

将不同途径获取的身份证图像输入到计算机中进行预处理,再对身份证序列号进行搜索、检测、定位,并分割出包含身份证序列号的矩形区域,实现对序列号的快速识别。

  开始读取身份证图像    灰度化确定号码区域边缘检测图像腐蚀    结束删除二值图像的小面积对象平滑图像身份证序列号定位  于图像识别技术在静态车牌图像识别中发展较完善,因此也参考了车牌图像识别中相关资料和其他参考书[6-8]。

系统可以运行于WindowsXP、windows7等操作系统下,程序调试时使用matlabR2013b。

系统所用具体功能模块及函数的工作原理、实现方法及效果图在下一节分步说明。

  第6页    三、设计的实现  1.载入原始图像    系统调试过程中原始图像的获取从XX图片中获得,在后续系统测试过  程中为了验证系统的稳定性和统一性加入直接扫描获得的图片作为原始图像。

  >>I=imread(‘‘);figure

(1),imshow(I);  title(‘原始图像’);%将身份证的原图显示出来,并加标题为“原始图像”。

结果如下:

    图1身份证原始图像  第7页    2.将彩图转换为灰度图并绘制直方图    在数字图像处理中,灰度直方图是最简单且最有用的工具,直方图表达  的信息是每种亮度的像素点的个数。

直方图是图像的一个重要特征,因为直方图能够用少量的数据表达图像的灰度统计特征。

一个灰度级别在范围[0,L-1]的数字图像的直方图是一个离散的函数:

    具体程序如下:

  >>I1=rgb2gray(I);%将RGB图转换为灰度图figure(4),subplot(1,2,1),imshow(I1);title(‘灰度图’);%绘制灰度图  figure(4),subplot(1,2,2),imhist(I1);title(‘灰度图直方图’);%绘制灰度图的直方图结果如下:

  第8页      图2灰度图直方图    3.原始图像几何变换    于身份证序列号固定位于图像右下角,为了更好的对图样进行操作及  有效处理,先对原始图像中序列号进行粗定位,对原始图像进行剪切及放大操作。

图像剪切  第9页    在matlab中,用函数imcrop实现对图像剪切操作。

该操作剪切的是图  像中的一个矩形子图,用户可以通过参数指定这个矩形四个顶点的坐标,也可以交互地用鼠标选取这个矩形。

具体程序如下:

>>I2=imcrop(I,[180,300,480,180]);%在一定区域范围内对图像进行剪切figure

(2);imshow(I2);  title(‘剪切后的图像’);%显示图像并命名为“剪切后的图像”结果如下:

    图3对原始图像进行剪切后的图像  图像的放大  对原图像进行放大操作,以便于后期处理及有效识别。

Matlab中,用  函数imresize来实现对图像的缩放。

可以使用最近邻值、双线性插值和双三次插值方法。

其中直接赋值为和它最相近的像素灰度值,称为最近邻插值法,该方法的主要特点是简单、计算量很小,但放大效果较差,可能会产生马赛克现象。

通过数学插值算法来计算相应的像素点的灰度值,这类方法处理效果好,但运算量会有所增加。

选用的是双线性插值法进行放大操作。

  第10页  

  

      具体程序如下:

  >>I3=imresize(I2,2,’bilinea’);%对剪切后图像进行双线性插值法进行放大2倍处理  >>figure(3);imshow(I3);>>title(‘双线性插值图像’);结果如下:

    图4双线性插值图像    4.边缘检测    图像的边缘是指其周围像素灰度急剧变化的那些像素的集合,她是图像  最基本的特征。

边缘存在于目标、背景和区域之间,所以它是图像分割所依赖的最重要的依据。

于边缘是位置的标志,对灰度的变化不敏感,因此,边缘也是图像匹配的重要特征。

  边缘检测的基本思路是先检测图像中的边缘点,在按照某种策略将边缘  点连接成轮廓,从而构成分割区域。

于边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开,因此边缘检测对于数字图像处理十分重要。

    一阶微分边缘算子也称梯度边缘算子,他是利用图像在边缘处的阶跃  第11页  性,即图像梯度在边缘取得极大值的特性进行边缘检测的,采用sobel算子进行边缘检测。

具体程序如下:

  >>I4=edge(I3,’sobel’);%用sobel算子进行边缘检测figure(5),imshow(I4);  title(‘sobel算子边缘检测图像’);结果如下:

    图5sobel算子边缘检测图像  5.图像腐蚀    腐蚀运算是形态学处理的基础,腐蚀表示用某种对一个图像进行探测,以便找出在图像内部可以放下该基元的区域。

腐蚀过程相当于“收缩”或“细化”二值图像中的对象,采用matlab中的imerode函数来实现腐蚀操作。

具体程序如下:

  se=[1;1;1];%选取结构元素矩阵  I5=imerode(I4,se);%对图像实施腐蚀操作,即膨胀的反操作figure(6),imshow(I5);%显示图6  title(‘腐蚀操作’);%将图像命名为“腐蚀操作”  第12页    结果如下:

    图6进行腐蚀操作后的图像  6.平滑图像    任何一副原始图像在获取和传输等过程中,会受到各种噪声的干扰,使  图像质量下降,图像模糊,特征淹没,对图像分析不利。

为了抑制噪声改善图像质量所进行的处理称图像平滑或去噪。

图像平滑是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量的图像处理方法。

图像平滑可以在空间域和频率域中进行。

采用imclose函数对图像进行平滑处理,imclose是对图像实现闭运算,闭运算也能平滑图像的轮廓,但与开运算相反,它一般融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。

具体程序如下:

  >>se=strel(‘rectangle’,[25,25]);%构造结构元素以正方形构造一个seI6=imclose(I5,se);%图像平滑、填充图像figure(7),imshow(I6);title(‘平滑图像’);结果如下所示:

  第13页        图7平滑图像  7.删除二值图像的小面积对象    采用matlab中bwareaopen函数删除二值图像BW中面积小于某值的对  象,此数值经过调试后在本系统中定位1000。

具体程序如下:

  >>I7=bwareaopen(I6,1000);%去除灰度值小于1000的部分figure(8),imshow(I7);  title(‘删除小面积对象’);%显示滤波后图像并命名为“删除小面积对象”结果如下:

    图8删除小面积对象  8.身份证号定位  第14页    采用以下程序对身份证号进行定位并显示最终图像,相关程序说明见备  注。

  具体程序如下:

  >>[y,x,z]=size(I7);%返回I7各维的尺寸,存储在x,y,z中I8=double(I7);%将I7转换成双精度  tic  %tic表示计时的开始,toc表示计时的结束Color_y=zeros(y,1);%产生一个y*1的零阵fori=1:

y  forj=1:

x  if(I8(i,j,1)==1)  %如果I8(i,j,1)即I8的图像中坐标为(i,j)的点值为1,即该点为背景颜色,则Color_yi,1)的值加1    Color_y(i,1)=Color_y(i,1)+1;%背景颜色像素点统计  end  end  end  [tempMaxY]=max(Color_y);%Y方向序列号区域确定  %temp为向量Color_y的元素中的最大值,MaxY为该值的索引PY1=MaxY;  while((Color_y(PY1,1)>=5)&&(PY1>1))  PY1=PY1-1;end  PY2=MaxY;  while((Color_y(PY2,1)>=5)&&(PY2  第15页  

  

      end  IY=I3(PY1:

PY2,:

:

);%行方向号码区域确定  Color_x=zeros(1,x);%进一步确定x方向的序列号区域forj=1:

x  fori=PY1:

PY2  if(I8(i,j,1)==1)    Color_x(1,j)=Color_x(1,j)+1;    end  end  end  PX1=1;  while((Color_x(1,PX1)  while((Color_x(1,PX2)PX1))  PX2=PX2-1;end  PX1=PX1-1;%对序列号区域的校正PX2=PX2+1;  dw=I3(PY1:

PY2-8,PX1:

PX2,:

);t=toc;  figure(9),imshow(IY),title(‘此身份证号为’);%显示最终结果  第16页    最终身份证号如下所示:

    图9最终身份证号      第17页    四、系统调试    采用不同图像样品对系统进行测试。

  1.直接扫描身份证作为原始图像    直接运行系统后发现在截图操作时出现问题,所选区域并不是序列号所在位置,结果如下图:

    第18页    原因在于此扫描样品大小为[804,1270],而程序设计时所选图样为[384,512],因此在此处加入压缩操作。

具体程序如下:

I0=imread(‘‘)I=imresize(I0,[402,635])  I1=rgb2gray(I);%将RGB图转换为灰度图figure(4),subplot(1,2,1),imshow(I1);?

?

?

?

  将此程序添加至源代码中,重新测试系统后,最终结果如下:

      证明系统运行较好,系统测试结束。

    第19页    五、课程设计总结与体会    通过本次数字图像处理的课程设计,使我认识到书本上基础内容的学习  和真正去设计完成一个想法有很大差别。

在完成本设计的过程中,遇到很多困难,调试系统时更是经常出错,这就需要主动去查找资料,去学习,去完善,最终才能获得较好的结果。

系统调试过程也让我对matlab软件有了更深入的了解和认识,对基础知识有了更进一步的掌握,为以后的学习打下良好的基础。

  第20页      

        

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1