一、Gabor滤波布匹瑕疵检测简介

1 Gabor滤波器


2 Gabor函数结合代码分析:

二、部分源代码

function varargout = bupi(varargin)
% BUPI MATLAB code for bupi.fig
%      BUPI, by itself, creates a new BUPI or raises the existing
%      singleton*.
%
%      H = BUPI returns the handle to a new BUPI or the handle to
%      the existing singleton*.
%
%      BUPI('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in BUPI.M with the given input arguments.
%
%      BUPI('Property','Value',...) creates a new BUPI or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before bupi_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to bupi_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help bupi% Last Modified by GUIDE v2.5 28-May-2015 22:11:59% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @bupi_OpeningFcn, ...'gui_OutputFcn',  @bupi_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before bupi is made visible.
function bupi_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to bupi (see VARARGIN)
axes(handles.axes1);
imshow([255]);
axes(handles.axes2);
imshow([255]);
axes(handles.axes3);
imshow([255]);
axes(handles.axes4);
imshow([255]);
axes(handles.axes5);
imshow([255]);
axes(handles.axes6);
imshow([255]);
% Choose default command line output for bupi
handles.output = hObject;% Update handles structure
guidata(hObject, handles);% UIWAIT makes bupi wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = bupi_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
global tu
axes(handles.axes1)
[filename,pathname]=uigetfile({ ...'*.*','All Files(*.*)';},...'选择文件');
%
if isequal([filename,pathname],[0,0])return
else%读取图片pic = fullfile(pathname,filename);b = imread(pic);imshow(b);%上面是打开图片的步骤,这一句是显示图片tu=b;title('原始图像');%handle.axes1=b;
end
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
global tu;
tu2 = gabor2(tu,0);
axes(handles.axes2);
imshow(tu2);
title('0度滤波结果');tu2 = gabor2(tu,pi/4);
axes(handles.axes3);
imshow(tu2);
title('pi/4度滤波结果');tu2 = gabor2(tu,pi/2);
axes(handles.axes4);
imshow(tu2);
title('pi/2度滤波结果');tu2 = gabor2(tu,pi/4*3);
axes(handles.axes5);
imshow(tu2);
title('pi/4*3度滤波结果');
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
global tu;
P  = 5;
T1 =8;
T2 = 100;
I = tu;I0=I;%预处理I=double(I0); %数据类型的转换[M,N]=size(I);%得到待检测图像的大小J=junzhicaiyang(I,M,N,P); %调用均值下采样函数J=uint8(J);%双线性插值,恢复原来的图像大小I1=imresize(J,P,'bilinear'); %双线性插值,恢复原来图像的大小。%进行方差下采样,用于增强图像疵点信息I1=double(I1);J1=fangchacaiyang(I1,M,N,P); %调用方差下采样函数J1=uint8(J1);%双线性插值,恢复原来图像的大小。I=imresize(J1,P,'bilinear');%进行二值化及其后处理T=Otsu(I);%解决了利用大津法不能分辨是否含有疵点的缺陷的缺点,统计发现无疵点图像otsu得到阈值均小于8if T<=T1T=T1+1;end

三、运行结果


四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.

【瑕疵检测】基于matlab Gabor滤波布匹瑕疵检测【含Matlab源码 407期】相关推荐

  1. 【瑕疵检测】基于matlab GUI Gabor滤波布匹瑕疵检测【含Matlab源码 407期】

    ⛄一.Gabor滤波布匹瑕疵检测简介 1 Gabor滤波器 2 Gabor函数结合代码分析: ⛄二.部分源代码 function varargout = bupi(varargin) % BUPI M ...

  2. 【图像融合】基于matlab导向滤波图像融合【含Matlab源码 1959期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像融合]基于matlab导向滤波图像融合[含Matlab源码 1959期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  3. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  4. 【Matlab水果识别】苹果质量检测及分级系统(带面板)【含GUI源码 1613期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]苹果质量检测及分级系统(带面板)[含GUI源码 1613期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...

  5. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  6. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  7. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  8. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  9. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

  10. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

最新文章

  1. Marshal.Copy 之 startIndex 参数的含义
  2. linux tomcat连接mysql步骤_linux系统下tomcat的安装步骤
  3. MAC OS X 1.1 El Capitan安装方法与步骤
  4. IntelliJ IDEA for Mac工件包(artifact)中 Web facet resources 的模块名称有误,如何修改?
  5. 《机器人爱好者(第2辑)》——部署机械手或末端执行器
  6. c++ primer plus 复合类型之字符串、string、结构体、共用体、指针
  7. Atitit 会话层和表示层的异同
  8. 杭电HDUacm2098
  9. 趣拼图——项目演示及代码
  10. 【20保研】华东师范大学计算机科学与软件工程学院第五届“高可信软件工程优秀大学生夏令营”活动通知...
  11. c语言1076素数,九度OJ 1076:N的阶乘 题解
  12. 易班php,易班轻应用开发:PHP版
  13. 腾讯游戏一口气发布44款产品内容;爱立信力争7月底完成收购Vonage | 美通企业日报...
  14. 码农深耕 - 35岁的程序员何去何从?
  15. 售前工程师与售后工程师
  16. 用xlwings直接调用excel打开xlsx文件
  17. 【不就是java设计模式吗】设计模式七大原则,用代码对比方式,化抽象为具体,实打实的教会你
  18. 水果店的问题和风险,开水果店会遇到什么问题
  19. Python去除PDF文件水印(PyMuPDF包)
  20. 鸿蒙除开踏青时,鸿蒙初开踏青时 转载

热门文章

  1. HDU1427 速算24点
  2. 解题报告(LeetCode):Max Points on a Line
  3. 设计模式详解(链接)
  4. [RESTful web services读书笔记] 接口设计中维持XML和JSON表述的兼容性
  5. c++/cli 之数据库操作
  6. Jquery .ajax方法分析(一)
  7. Prefer rather than 喜欢 Prefer to
  8. 190703每日一句
  9. Atitit json数据操作法 目录 1. 2. 常用json函数类型四大类型 crud判断 1 1.1. 2.1. 创建json 2 1 1.2. 2.2. 选择与读取 3读取数据读取key
  10. Atitit 界面接口技术 cli gui nui cui管理 attilax总结 1. NUI 1 1.1. 问:什么是“自然用户界面”? 1 2. Cli到gui到nui CUI 2 2.1.