💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
🔊博主简介:985研究生,Matlab领域科研开发者;
🚅座右铭:行百里者,半于九十。
🏆代码获取方式:
优快云 Matlab武动乾坤—代码获取方式
更多Matlab图像处理仿真内容点击👇
①Matlab图像处理(进阶版)
⛳️关注优快云 Matlab武动乾坤,更多资源等你来!!
⛄一、 芯片缺陷检测简介
1 缺陷检测技术研究
1.1 图像边缘检测算法研究
图像的边缘是那些周围像素灰度有阶跃变化或屋顶变化的像素的集合。对于表贴芯片的缺陷检测而言, 芯片引脚的边缘部分包含着大量的缺陷特征参数信息。本文使用改进的Canny算子作为系统的图像边缘检测算法[5]。
改进的Canny算子具体实现过程如下:
(1) 使用二维高斯函数对图像进行平滑去噪处理, 将原始图像中存在的高频噪声滤除。
(2) 计算梯度的方向和幅值。在像素点的3×3邻域范围内计算x方向, y方向, 45°方向以及135°方向一阶偏导数有限差分来计算像素梯度的幅值。
(3) 对图像的梯度幅值进行非极大值抑制, 得到单像素宽度的边缘。
(4) 采用双阈值算法对图像边缘进行检测和连接。
1.2 缺陷特征参数计算
对表贴芯片的缺陷的研究发现, 实际上不管是缺脚、位置偏移抑或是共面度缺陷等都可以通过测量一个引脚的长、宽或者相互之间的间距等参数来实现合理的判断。
1.2.1 引脚数目的计算
由于芯片引脚的位置特点, 本文采用的是垂直灰度投影方法, 具体思想是将引脚边缘图像中每一列的像素点的灰度信息在水平位置进行累加, 最终得到引脚边缘图像在水平方向的灰度特征信息, 通过对这些灰度特征的测量便可以得到图像的相关参数信息。
这里以SOP芯片上排引脚边缘为例说明, 设定图像左下角为原点 (0, 0) , 图像上方起始为第一行。从原点 (0, 0) 处开始遍历搜索引脚的灰度投影图像, 具体步骤如下。
以左下角作为原点 (0, 0) , 从x=0开始, 检查该行是否存在灰度值为0的像素点, 如果存在, 标记p1=x;否则检查下一列, 直到找到p1为止。
然后从p1开始, 继续搜索检查该行是否存在灰度值为0的像素点, 如果不存在, 标记p2=x;否则检查下一列, 直到找到p2为止。
从p2开始扫描, 继续检查该行是否存在灰度值为0的像素点, 如果存在, 标记p3=x;否则检查下一列, 直到找到p3为止。此时统计p1和p2之间的距离a1即代表该引脚的宽度, p2和p3之间的距离b1即代表该相邻引脚之间的间距。依次类推, 统计像素点的跳变次数便可以得到引脚的数目。芯片上排引脚垂直灰度投影如图2所示。
1.2.2 引脚宽度和间距的计算
实际上, 在上一节求取芯片引脚数量时, 统计p1和p2之间的距离an即代表该引脚的宽度, p2和p3之间的距离bn即代表对应的相邻引脚之间的间距。
1.2.3 引脚长度计算
通过研究发现, 当对SOP芯片的引脚边缘图像进行二值化后, 近似矩形的引脚边缘图像的上下两边基本为标准的直线, 此时通过扫描计算上下两边之间的距离就可以得到引脚的长度。因此本文采用对SOP芯片的二值化后的引脚边缘图像进行扫描, 计算引脚上下两边的纵坐标之差, 求出单个引脚的长度L。
⛄二、部分源代码
function varargout = GUI(varargin)
% GUI MATLAB code for GUI.fig
% GUI, by itself, creates a new GUI or raises the existing
% singleton*.
%
% H = GUI returns the handle to a new GUI or the handle to
% the existing singleton*.
%
% GUI(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in GUI.M with the given input arguments.
%
% GUI(‘Property’,‘Value’,…) creates a new GUI or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before GUI_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to GUI_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 GUI
% Last Modified by GUIDE v2.5 14-Feb-2023 20:01:47
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @GUI_OpeningFcn, …
‘gui_OutputFcn’, @GUI_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
% End initialization code - DO NOT EDIT
% — Executes just before GUI is made visible.
function GUI_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 GUI (see VARARGIN)
% Choose default command line output for GUI
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes GUI wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% — Outputs from this function are returned to the command line.
function varargout = GUI_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;
%
% lg=imread(“logo.jpg”);%可在此自行更换LOGO
% axes(handles.axes8);
% imshow(lg);
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,‘String’) returns contents of edit1 as text
% str2double(get(hObject,‘String’)) returns contents of edit1 as a double
% — Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]王伟华,李朋轩.基于机器视觉的表贴芯片缺陷检测系统研究[J].无线互联科技. 2017(12)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合