✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 往期回顾关注个人主页Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条格物致知,完整Matlab代码获取及仿真咨询内容私信。 内容介绍一、PCB 缺陷检测的重要性印刷电路板PCB是电子设备的关键组成部分其质量直接影响电子产品的性能和可靠性。在 PCB 制造过程中由于各种因素如生产工艺的复杂性、原材料的差异以及设备的精度限制等不可避免地会产生各种缺陷。常见的 PCB 缺陷包括短路、断路、元件缺失、引脚变形等。这些缺陷若未被及时检测和修复可能导致电子产品出现故障甚至引发安全问题。因此高效准确的 PCB 缺陷检测对于保证电子产品质量、提高生产效率和降低生产成本至关重要。二、机器视觉技术概述机器视觉是一门涉及计算机科学、图像处理、模式识别等多学科的交叉技术它通过光学成像系统获取物体的图像信息然后利用计算机对图像进行处理、分析和理解以实现对物体的检测、识别、测量和定位等功能。与传统的人工检测方法相比机器视觉具有检测速度快、精度高、可靠性强、可重复性好等优点能够满足现代工业生产对高速、高精度检测的需求。三、基于机器视觉的 PCB 缺陷检测系统原理图像采集光源选择合适的光源是获取高质量 PCB 图像的关键。不同类型的缺陷可能需要不同的光照条件来突出显示。例如对于表面划痕等缺陷采用明场照明可以清晰地显示缺陷的轮廓而对于内部短路等缺陷可能需要采用背光照明来穿透 PCB显示内部结构。常见的光源类型有 LED 光源、荧光灯光源等LED 光源因其具有亮度高、寿命长、光谱可调节等优点在 PCB 缺陷检测中得到广泛应用。相机选型根据检测任务的要求和 PCB 的尺寸、精度等因素选择合适的相机。相机的分辨率决定了能够检测到的最小缺陷尺寸帧率则影响检测速度。例如对于高精度的 PCB 检测通常需要选择高分辨率的相机而对于高速生产线的检测需要选择高帧率的相机。此外还需考虑相机的接口类型、成像方式等因素以确保相机能够与图像处理系统进行高效的数据传输和处理。图像预处理灰度化将采集到的彩色图像转换为灰度图像简化后续处理。由于灰度图像只有一个通道处理速度更快且在许多情况下灰度信息足以满足缺陷检测的需求。灰度化的方法通常是根据颜色模型如 RGB 模型将彩色像素的三个颜色通道值按照一定的权重进行加权求和得到对应的灰度值。滤波去噪在图像采集过程中由于受到环境噪声、相机传感器噪声等因素的影响图像中可能会存在各种噪声这些噪声会干扰缺陷的检测。常用的滤波方法有均值滤波、中值滤波、高斯滤波等。均值滤波通过计算邻域像素的平均值来替换当前像素值能够有效地去除高斯噪声中值滤波则是将邻域内的像素值进行排序取中间值作为当前像素值对于椒盐噪声等脉冲噪声有较好的抑制效果高斯滤波是一种基于高斯函数的加权平均滤波方法能够在平滑图像的同时保留图像的边缘信息。图像增强为了提高图像中缺陷与背景的对比度便于后续的特征提取和识别需要对图像进行增强处理。常见的图像增强方法有直方图均衡化、对比度拉伸、锐化等。直方图均衡化通过重新分配图像的灰度值使图像的灰度分布更加均匀从而增强图像的对比度对比度拉伸则是通过对图像的灰度范围进行线性或非线性变换扩大感兴趣区域的灰度差异锐化处理可以增强图像的边缘和细节信息常用的锐化算子有 Sobel 算子、Prewitt 算子等。特征提取边缘检测边缘是图像中灰度变化剧烈的区域许多 PCB 缺陷如短路、断路等会在图像中表现为边缘的异常。常用的边缘检测算法有 Canny 算法、Sobel 算法、Laplacian 算法等。Canny 算法是一种经典的边缘检测算法它通过高斯滤波平滑图像、计算梯度幅值和方向、非极大值抑制以及双阈值检测等步骤能够有效地检测出图像中的边缘并具有较好的抗噪声能力。形态学操作形态学操作是基于数学形态学的图像处理方法它通过使用结构元素对图像进行膨胀、腐蚀、开运算、闭运算等操作来提取图像中的特征。例如对于一些由于元件缺失或引脚变形导致的空洞或凸起等缺陷可以通过形态学操作来突出这些特征。膨胀操作可以扩大图像中的物体区域腐蚀操作则可以缩小物体区域开运算先腐蚀后膨胀可以去除图像中的小噪声点闭运算先膨胀后腐蚀可以填充物体中的小空洞。纹理特征提取PCB 表面具有一定的纹理特征不同的缺陷可能会导致纹理的变化。常用的纹理特征提取方法有灰度共生矩阵、局部二值模式等。灰度共生矩阵通过计算图像中不同灰度级对在一定方向和距离上的共生概率来提取纹理的对比度、相关性、能量和熵等特征局部二值模式则是通过比较中心像素与邻域像素的灰度值生成二进制模式从而描述图像的纹理信息。缺陷分类与识别模板匹配将提取的 PCB 图像特征与预先存储的标准模板进行匹配通过计算相似度来判断是否存在缺陷以及缺陷的类型。模板匹配的方法有基于灰度值的匹配、基于特征的匹配等。基于灰度值的匹配直接比较图像的灰度值计算简单但对图像的旋转、缩放等变化较为敏感基于特征的匹配则先提取图像的特征如边缘、角点等然后根据特征进行匹配对图像的变化具有较好的鲁棒性。机器学习算法利用机器学习算法对提取的特征进行分类和识别。常见的机器学习算法有支持向量机SVM、神经网络如卷积神经网络 CNN等。首先使用大量的有缺陷和无缺陷的 PCB 图像作为训练集对机器学习模型进行训练让模型学习到缺陷与正常 PCB 图像的特征差异。在检测阶段将提取的待检测 PCB 图像特征输入到训练好的模型中模型根据学习到的知识判断是否存在缺陷以及缺陷的类型。卷积神经网络CNN在图像分类任务中表现出色它通过卷积层、池化层和全连接层等结构自动提取图像的特征能够有效地识别各种复杂的 PCB 缺陷。⛳️ 运行结果 部分代码ingleton*.%% MAIN(CALLBACK,hObject,eventData,handles,...) calls the local% function named CALLBACK in MAIN.M with the given input arguments.%% MAIN(Property,Value,...) creates a new MAIN or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before main_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to main_OpeningFcn via varargin.%% *See GUI Options on GUIDEs 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 main% Last Modified by GUIDE v2.5 03-Apr-2026 07:58:09% Begin initialization code - DO NOT EDITgui_Singleton 1;gui_State struct(gui_Name, mfilename, ...gui_Singleton, gui_Singleton, ...gui_OpeningFcn, main_OpeningFcn, ...gui_OutputFcn, main_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 main is made visible.function main_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 main (see VARARGIN)% Choose default command line output for mainhandles.output hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes main wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout main_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 structurevarargout{1} handles.output;% --- Executes on button press in CheckDefects.function CheckDefects_Callback(hObject, eventdata, handles)% hObject handle to CheckDefects (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB 参考文献[1]刘泉,胡文娟.基于机器视觉的PCB缺陷检测系统设计与研究[J].电子器件, 2007(2):4.DOI:10.3969/j.issn.1005-9490.2007.02.053.更多创新智能优化算法模型和应用场景可扫描关注机器学习/深度学习类BP、SVM、RVM、DBN、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、SAE、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、XGBoost、LightGBM、TCN、BiTCN、ESN、Transformer、模糊小波神经网络、宽度学习等等均可~方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断组合预测类CNN/TCN/BiTCN/DBN/Transformer/Adaboost结合SVM、RVM、ELM、LSTM、BiLSTM、GRU、BiGRU、Attention机制类等均可可任意搭配非常新颖~分解类EMD、EEMD、VMD、REMD、FEEMD、TVFEMD、CEEMDAN、ICEEMDAN、SVMD、FMD、JMD等分解模型均可~路径规划类旅行商问题TSP、车辆路径问题VRP、MVRP、CVRP、VRPTW等、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划EVRP、 双层车辆路径规划2E-VRP、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻、公交车时间调度、水库调度优化、多式联运优化等等~小众优化类生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划2E-VRP、充电车辆路径规划EVRP、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位、冷链、时间窗、多车场等、选址优化、港口岸桥调度优化、交通阻抗、重分配、停机位分配、机场航班调度、通信上传下载分配优化、微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电、电/冷/热负荷预测、电力设备故障诊断、电池管理系统BMSSOC/SOH估算粒子滤波/卡尔曼滤波、 多目标优化在电力系统调度中的应用、光伏MPPT控制算法改进扰动观察法/电导增量法、电动汽车充放电优化、微电网日前日内优化、储能优化、家庭用电优化、供应链优化\智能电网分布式能源经济优化调度虚拟电厂能源消纳风光出力控制策略多目标优化博弈能源调度鲁棒优化等等均可~ 无人机应用方面无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划通信方面传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配信号处理方面信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理传输分析去噪、数字信号调制、误码率、信号估计、DTMF、信号检测电力系统方面 微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电、电/冷/热负荷预测、电力设备故障诊断、电池管理系统BMSSOC/SOH估算粒子滤波/卡尔曼滤波、 多目标优化在电力系统调度中的应用、光伏MPPT控制算法改进扰动观察法/电导增量法、电动汽车充放电优化、微电网日前日内优化、储能优化、家庭用电优化、供应链优化\智能电网分布式能源经济优化调度虚拟电厂能源消纳风光出力控制策略多目标优化博弈能源调度鲁棒优化原创改进优化算法适合需要创新的同学原创改进2025年的波动光学优化算法WOO以及三国优化算法TKOA、白鲸优化算法BWO等任意优化算法均可保证测试函数效果一般可直接核心