资源简介

大三的数字图像处理课程设计,基于matlab设计了一个GUI界面,能够读取图片并处理,将检测到的缺陷类型,大小与位置标注。

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%主函数文件%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%请运行本程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%{
数字图像处理课程设计
1602122第二组
学生:燕敬阳 曹恒镇 杨丹
老师:李琳
-----------------------------------------------------------------------------------------
//作品概述:
本代码主要功能是实现金属表面三种缺陷的检测、分类及测量,并使用GUI进行封装以便于用户使用。
该GUI可以导入电脑中的灰度图片,之后进行处理,能确定缺陷的种类,将检测到的缺陷标注在原图上,
并能够测量不同缺陷的大小(不同缺陷衡量标准不同)。
------------------------------------------------------------------------------------------
//重要函数简介:
#pushbutton1_Callback(hobject eventdatahandles):
按键1(即‘图像处理‘按键)的回调函数,包含全部图像处理算法
#pushbutton2_Callback(hobject eventdatahandles):
按键2(即‘图片导入‘按键)的回调函数,主要是图片的导入
#Ga(thetanum):图像的Garbor卷积核的初始化
#filterimage(a6Gaborfiter):Garbor滤波算法
#thres(image):灰度图的最大熵阈值分割算法
#location():‘轧入氧化皮‘缺陷的定位及显示
#houghtran():对于‘划痕‘缺陷的霍夫圆检测
#lbp(varargin):网上的‘局部二值模式‘特征提取算法
#svm.m:独立m文件,用于所有金属缺陷照片的LBP特征提取和SVM(支持向量机)监督学习算法的训练与测试
--------------------------------------------------------------------------------------------
author:Faust.Cao
time:2018.11.1
%}



%%
function varargout = app(varargin)
%GUI页面主函数,MATLAB提供,无需修改

gui_Singleton = 1;
gui_State = struct(‘gui_Name‘       mfilename ...
                   ‘gui_Singleton‘  gui_Singleton ...
                   ‘gui_OpeningFcn‘ @app_OpeningFcn ...
                   ‘gui_OutputFcn‘  @app_OutputFcn ...
                   ‘gui_LayoutFcn‘  []  ...
                   ‘gui_Callback‘   []);
if nargin && ischar(varargin{1})
   gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State varargin{:});
else
    gui_mainfcn(gui_State varargin{:});
end
%%

 
function app_OpeningFcn(hobject eventdata handles varargin)
% GUI初始化函数
%修改设置背景
%modified by:Faust.Cao

ha=axes(‘units‘‘normalized‘‘pos‘[0 0 1 1]);
 uistack(ha‘down‘);
 %设置程序的背景图为back.jpg
 ii=imread(‘D:\matlab\matlab工程项目\design\back.jpg‘);
 image(ii);
 colormap gray
 set(ha‘handlevisibility‘‘off‘‘visible‘‘off‘);

handles.output = hobject;
guidata(hobject handles);
%%


function varargout = app_OutputFcn(hobject eventdata handles) 
% GUI输出函数,MATLAB提供,无需修改

varargout{1} = handles.output;
%%


function pushbutton1_Callback(hobject eventdata handles)
% 按键1(即‘图像处理‘按键)的回调函数,包含全部图像处理算法

global a5;%全局变量
global svmModel;%全局变量,从svm.m文件调用
axis off;%去除axes坐标,完整显示图片
a6=a5;
a=str2double(get(handles.edit1‘string‘));%读取用户输入的焦距
b=str2double(get(handles.edit2‘string‘));%读取用户输入的物距

d=a/(b-a);%由高斯公式计算垂轴放大率

ma=max(max(a6));
mi=min(min(a6));
%对比度增强,将灰度映射为[0255]
for ii=1:200 
    for jj=1:200
        a6(iijj)=255*double(a6(iijj)-mi)./double(ma-mi);
    end
end
%图像滤波
ab=filterimage(a6);

%图像最大熵阈值分割
ss=thres(ab);
ab1=im2bw(abss/255);

[BL]=bwboundaries(ab1);%二值图边缘坐标提取
[xy]=size(B);
mm=0;
%寻找最大提取区域
for i=1:x
    ll=length(B{i});
    if ll>mm
      mm=ll;
    end
end
%判断是否是‘轧入氧化皮‘缺陷
if mm<120 
 set(handles.text8‘string‘‘缺陷是轧入氧化皮‘);%在text8文本框处输出缺陷类型
 [xcyc]=findcenter(Bab);%求各提取区域的质心位置
 axes(handles.axes2);%设置在ax

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-04 18:41  金属表面缺陷分类与测量系统\
     文件         655  2018-11-02 13:51  金属表面缺陷分类与测量系统\Ga.m
     目录           0  2018-11-02 15:06  金属表面缺陷分类与测量系统\NEU surface defect database\
     文件       41078  2013-04-13 15:09  金属表面缺陷分类与测量系统\NEU surface defect database\In_1.bmp
     文件       41078  2013-04-13 15:13  金属表面缺陷分类与测量系统\NEU surface defect database\In_10.bmp
     文件       41078  2013-04-13 15:44  金属表面缺陷分类与测量系统\NEU surface defect database\In_100.bmp
     文件       41078  2013-04-13 15:45  金属表面缺陷分类与测量系统\NEU surface defect database\In_101.bmp
     文件       41078  2013-04-13 15:45  金属表面缺陷分类与测量系统\NEU surface defect database\In_102.bmp
     文件       41078  2013-04-13 15:46  金属表面缺陷分类与测量系统\NEU surface defect database\In_103.bmp
     文件       41078  2013-04-13 15:47  金属表面缺陷分类与测量系统\NEU surface defect database\In_104.bmp
     文件       41078  2013-04-13 15:48  金属表面缺陷分类与测量系统\NEU surface defect database\In_105.bmp
     文件       41078  2013-04-13 15:48  金属表面缺陷分类与测量系统\NEU surface defect database\In_106.bmp
     文件       41078  2013-04-13 15:49  金属表面缺陷分类与测量系统\NEU surface defect database\In_107.bmp
     文件       41078  2013-04-13 15:50  金属表面缺陷分类与测量系统\NEU surface defect database\In_108.bmp
     文件       41078  2013-04-13 15:50  金属表面缺陷分类与测量系统\NEU surface defect database\In_109.bmp
     文件       41078  2013-04-13 15:14  金属表面缺陷分类与测量系统\NEU surface defect database\In_11.bmp
     文件       41078  2013-04-13 15:51  金属表面缺陷分类与测量系统\NEU surface defect database\In_110.bmp
     文件       41078  2013-04-13 15:51  金属表面缺陷分类与测量系统\NEU surface defect database\In_111.bmp
     文件       41078  2013-04-13 15:51  金属表面缺陷分类与测量系统\NEU surface defect database\In_112.bmp
     文件       41078  2013-04-13 15:52  金属表面缺陷分类与测量系统\NEU surface defect database\In_113.bmp
     文件       41078  2013-04-13 15:52  金属表面缺陷分类与测量系统\NEU surface defect database\In_114.bmp
     文件       41078  2013-04-13 15:53  金属表面缺陷分类与测量系统\NEU surface defect database\In_115.bmp
     文件       41078  2013-04-13 15:53  金属表面缺陷分类与测量系统\NEU surface defect database\In_116.bmp
     文件       41078  2013-04-13 15:53  金属表面缺陷分类与测量系统\NEU surface defect database\In_117.bmp
     文件       41078  2013-04-13 15:54  金属表面缺陷分类与测量系统\NEU surface defect database\In_118.bmp
     文件       41078  2013-04-13 15:54  金属表面缺陷分类与测量系统\NEU surface defect database\In_119.bmp
     文件       41078  2013-04-13 15:14  金属表面缺陷分类与测量系统\NEU surface defect database\In_12.bmp
     文件       41078  2013-04-13 15:55  金属表面缺陷分类与测量系统\NEU surface defect database\In_120.bmp
     文件       41078  2013-04-13 15:55  金属表面缺陷分类与测量系统\NEU surface defect database\In_121.bmp
     文件       41078  2013-04-13 15:55  金属表面缺陷分类与测量系统\NEU surface defect database\In_122.bmp
     文件       41078  2013-04-13 15:55  金属表面缺陷分类与测量系统\NEU surface defect database\In_123.bmp
............此处省略896个文件信息

评论

共有 条评论