条纹图像的特征检测方法与程序的设计说明.doc

上传人:李司机 文档编号:1096612 上传时间:2022-06-24 格式:DOC 页数:6 大小:804.33KB
返回 下载 相关 举报
条纹图像的特征检测方法与程序的设计说明.doc_第1页
第1页 / 共6页
条纹图像的特征检测方法与程序的设计说明.doc_第2页
第2页 / 共6页
条纹图像的特征检测方法与程序的设计说明.doc_第3页
第3页 / 共6页
条纹图像的特征检测方法与程序的设计说明.doc_第4页
第4页 / 共6页
条纹图像的特征检测方法与程序的设计说明.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《条纹图像的特征检测方法与程序的设计说明.doc》由会员分享,可在线阅读,更多相关《条纹图像的特征检测方法与程序的设计说明.doc(6页珍藏版)》请在三一办公上搜索。

1、 . . 实验报告七实验名称:条纹图像的特征检测方法与程序设计课程:图像检测与处理专业:测控技术与仪器实验日期:1、实验目的通过图像处理算法的设计和程序编写调试,掌握采用数字图像处理技术实现工业目标对象特征检测的基本方法和过程。2、实验原理在相对亮的背景下,对较暗的目标对象(线缆)进行检测,得到有一定对比度的数字图像。首先,根据所采集的图像质量判断是否需要进行图像增强,根据图像增强原理分析和实验结果选用增强算法;为检测线缆的直径尺寸,方法之一是用行方向上线缆所覆盖的像素数来描述线径,为实现线缆覆盖像素数的度量,需要先将线缆目标从背景中分离出来,即进行二值化处理,选择二值化处理算法和门限值,对增

2、强后的灰度图像进行二值化处理;然后,统计各个像素行线缆直径方向上所覆盖的像素数N,对各行覆盖像素数求平均,作为检测结果值(单位:像素)。在检测系统的成像放大率不变的情况下,通过数字图像像素当量(毫米/像素)的标定,即对每个像素代表的实物尺寸的测定,则可以得到线径的实际尺寸:3、实验指标与要求自行设计图像处理程序和算法,实现给定条纹图像中的条纹中心线和条纹宽度的检测,并以像素为单位给出宽度检测结果。4、实验设备PC计算机,MATLAB程序开发软件,PHOTOSHOP图像处理软件,被处理的数字图像文件等。5、实验与结果分析(1)表达实验设计过程中需要考虑的图像处理步骤;解:读取待处理图像;对图像进

3、行中值滤波处理;采用最大类间方差法选取一个合理的二值化分割阈值;按照阈值进行二值化处理;闭运算处理;统计每一行含有目标对象的像素数目,并出其平均值,得到以像素为单位的条纹宽度检测结果;找到目标图像每一行的中心位置,将其连接起来,即得到了条纹中心线。(2)简述在所设计的程序实现中所采用的图像处理算法与依据;解:中值滤波:消除图像中含有的噪声点,对噪声信号进行了有效的抑制;最大类间方差法:方差是表征数据分布不均衡性的统计量,通过阈值对目标和背景进行了分割,通过循环使得两类数据间的方差越大越好,把该结果对应的阈值作为最正确阈值;二值化处理:通过二值化处理,使图像的像素只有0和1,便于后续的处理;闭运

4、算:选取了一个结构元素,进行闭运算处理,目的是填充目标小空洞、连接断开的近邻目标、平滑边界;宽度检测:统计每行含有目标对象的像素数目,并求出其平均值,即得到了以像素为单位的条纹宽度检测结果;条纹中心线:找到目标图像中每一行的中心位置,将其连接起来,即得到了条纹中心线。(3)写出提取图像中条纹中心线检测的程序流程和程序代码;解:条纹中心线检测的程序代码:% - Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)aa=handles.aa;m,n=siz

5、e(aa);for i=1:m%逐行扫描 z0=find(aa(i,:)=0); k=length(z0); fz(i)=z0(1);%找出目标对象每行的第一个元素的坐标 lz(i)=z0(k); %找出目标对象每行的最后一个元素的坐标 y=round(lz+fz)/2); %求每行第一个和最后一个元素坐标平均值,即得到每行的中心位置endx=1:m;plot(y,x,r,LineWidth,1) %画出中心线axes(handles.axes3);图1:条纹中心线检测的程序流程图图2:条纹宽度的程序流程图(4)写出检测图像中条纹宽度的程序流程和程序代码;解:条纹宽度的程序代码% - Exec

6、utes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)aa=handles.aa;one_count=sum(aa,2); %统计图像背景中每行所包含的像素数目zero_count=size(aa,2)-one_count; %计算统计出目标图像中每行所包含的像素数目handles.zero=zero_count;dia=mean(zero_count); %计算像素平均值,得到以像素为单位的条纹宽度检测结果dstr=检测结果: num2str(dia) pix

7、els; %将检测结果在GUI中显示出来set(handles.text3,String,dstr);guidata(hObject, handles);(5)给出以像素为单位的条纹宽度检测结果,用不同的颜色标记出条纹中心线。(见图3)图3:检测结果与中心线6、实验总结与体会(1)分析总结实现工业目标对象特征检测的基本图像处理环节;解:首先,读取观察图像,判断图像的质量;然后,在对图像滤波处理和图像增强,使图像噪声得到抑制,对比度增强;选取适宜的方法,进行二值化处理;去除伪目标,通过贴标签的方法区分不同的目标对象;最后,对目标对象进行检测处理,获取我们想要的特征。(2)分析并提出提高条纹宽度检

8、测精度的方法(至少一种方法);解:图像进行锐化处理,使目标图像的边界信息突出,避免其在滤波时损失部分信息采用区域提取的方法,将研究的目标图像从图像中分割出来,进行宽度检测,这样就会避免对不是目标对象的像素点进行统计了,提高了检测的精度。(3)分析并绘出工业图像检测应用系统的基本组成系统框图。(见图4)图4:工业图像检测应用系统基本组成7、参考文献1 章毓晋编著.图象分析与处理.:清华大学,1999年2 何锦平.基于小波分辨的图像增强与其应用研究D.西北工业大学硕士学位论文,2003.43 孔祥刚,诸静.基于PCI总线和DSP芯片的图像处理平台的硬件设计J.电子技术应用,2003(12):707

9、34 小鹏,孔玲君.基于图像处理的数字印刷线条质量检测方法研究J.包装工程,2013年7期5 闫敬文,数字图像处理MATLAB版,国防工业,2007.28、程序代码与程序流程图function varargout = exp5(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, exp5_OpeningFcn, . gui_OutputFcn, exp5_OutputFcn, . gui_LayoutFcn, ,

10、. gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction exp5_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(

11、hObject, handles);function varargout = exp5_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;% - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)a=imread(line2.bmp);axes(handles.axes1);imshow(a);handles.a=a;guidata(hObject, handles)

12、;% - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)a=handles.a;a=a(:,:,1);J=medfilt2(a);axes(handles.axes2);imshow(J);handles.J=J;guidata(hObject, handles);% - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata

13、, handles)J=handles.J;bw=im2bw(J,graythresh(J);bw=bwareaopen(bw,100);axes(handles.axes3);imshow(bw);se=strel(square,10);aa=imclose(bw,se);imshow(aa);hold onhandles.aa=aa;guidata(hObject, handles);% - Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)aa

14、=handles.aa;one_count=sum(aa,2);zero_count=size(aa,2)-one_count;handles.zero=zero_count;dia=mean(zero_count);dstr=检测结果: num2str(dia) pixels;set(handles.text3,String,dstr);guidata(hObject, handles);% - Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)aa=handles.aa;m,n=size(aa);for i=1:m z0=find(aa(i,:)=0); k=length(z0); fz(i)=z0(1); lz(i)=z0(k); y=round(lz+fz)/2); endx=1:m;plot(y,x,r,LineWidth,1)axes(handles.axes3);% - Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)close;图5:程序流程图6 / 6

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号