学习海康VisionMaster之表面缺陷滤波

news2025/6/3 8:25:51

一:进一步学习了

       今天学习下VisionMaster中的表面缺陷滤波:简单、无纹理背景的表面缺陷检测,可以检测表面的异物,缺陷,划伤等

二:开始学习

     1:什么表面缺陷滤波?

   表面缺陷滤波的核心原理是通过数学变换抑制背景干扰、增强缺陷特征

    2:应用场景

  1.  电池铝壳表面检测:检测:划痕、凹坑、凸起、异物、脏污

  2. 垫圈/螺丝缺陷识别:划伤、锈斑、形状缺损

三:直接上案例

1:先导入需要测试的图片集合

2:使用轮廓定位,把两个组件的线连起来,这里是需要设定模版匹配功能,这样图像不管怎么旋转都能准确定位图像位置,具体操作步骤可以参考前面课程

3:拖入位置修正功能:这个非常重要,这里也不提了,可以参考上一篇笔记

4:拖入表面缺陷滤波模块

5:双击组件,开始设定参数:

基本参数这里就是画ROI,设定跟踪参数和之前的工具是一样的方法

下面开始设定参数:

(1):滤波核宽度/高度:卷积核水平方向覆盖的像素数(如 3×5 核的宽度=5),

             每次计算时,核覆盖的局部区域大小。尺寸越大,覆盖范围越广,平滑效果越强,但细节丢失越多,调整经验

  1. )先验知识驱动:

    • 缺陷最小尺寸 → 决定核尺寸下限(避免漏检)。

    • 背景噪声尺度 → 决定核尺寸上限(避免过度模糊)。
      例:锂电隔膜异物检测(异物≥10像素)→ 最小核尺寸 11×11

  2. )动态调整策略:

    • 高反光材质(如金属):用小核+多级滤波(如先高斯后中值)。

    • 纹理背景(如织物):用Gabor方向核(宽度/高度依纹理周期调整)

(2):核数量:卷积核分析的角度颗粒度。软件根据设置的数值,在0到180度之间均匀分布卷积核方向。卷积核个数越多,算法检测的角度方向越多,能对更多方向的缺陷产生显著的滤波响应,但是这个参数不能过大,如果太大的话,会非常影响算法检测效率,基本设定6~8即可

(3):标准差:高斯标准差,如果缺陷比较弱,则需要增大该数值

(4):偏移:在整体滤波响应的结果中减掉该参数值。其作用为在调整波长和标准差等参数后,整体调整滤波响应的范围

(5):0/30/60/90/120/150度权重:滤波方向权重参数,包含0度、30度、60度、90度、120度和150度这6个方向的滤波响应权重

设定完成后,会输出综合各方向的滤波结果生成最终的缺陷滤波响应图

可以看到表面划伤的地方,能识别出来,但是旁边会有一点干扰,所以后续还需要做blob分析,将缺陷在识别出来

具体的blob设定方法可以参考前面的章节!

四:实测:上述设定好参数,开始实际测量看看效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2394904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

游戏引擎学习第314天:将精灵拆分成多个层

回顾并为今天的工作做准备 我们今天继续昨天开始的工作,现在我们要回到渲染中处理 Z 值的最终环节。我们目前已经有一个我们认为还算合理的排序方式,虽然可能还需要在接下来的过程中进行一些调整,但总体上已经有了一个明确的方向。 我们已经…

【学习笔记】深度学习-梯度概念

一、定义 梯度向量不仅表示函数变化的速度,还表示函数增长最快的方向 二、【问】为什么说它表示方向? 三、【问】那在深度学习梯度下降的时候,还要判断梯度是正是负来更新参数吗? 假设某个参数是 w,损失函数对它的…

【数据结构】图的存储(邻接矩阵与邻接表)

图的存储结构 因为图中既有节点,又有边(节点与节点之间的关系),因此,在图的存储中,只需要保存:节点和边关系即可。 节点保存比较简单,只需要一段连续空间即可,那边关系该怎么保存呢&#xff1…

tomcat yum安装

使用yum安装 yum install -y java-1.7.0-openjdk* tomcat* --disablerepoepel## java-1.7.0-openjdk* 注意:最终安装的是java-1.8.0版本## --disablerepoepel 禁用:EPEL源,防止版本冲突 java -version (2) 启停:Tomcat 7 s…

从翻译后修饰角度解析人工合成途径与底盘细胞的适配性-文献精读136

Compatibility between synthetic pathway and chassis cells from the viewpoint of post-translational modifications 从翻译后修饰角度解析人工合成途径与底盘细胞的适配性 摘要 揭示工程化设计的人工合成途径与底盘细胞整体代谢网络的交互作用及适配性机制是合成生物学研…

Cesium快速入门到精通系列教程一

一、打造第一个Cesium应用 1、官方渠道下载Cesium(可选择历史版本) ​​GitHub Releases页面​​ 访问 Cesium GitHub Releases,此处列出了所有正式发布的版本。 通过标签(如 v1.95.0)选择目标版本,下载…

[Windows] 剪映 视频编辑处理

附链接:夸克网盘分享(点击蓝色字体自行保存下载)

决策树 GBDT XGBoost LightGBM

一、决策树 1. 决策树有一个很强的假设: 信息是可分的,否则无法进行特征分支 2. 决策树的种类: 2. ID3决策树: ID3决策树的数划分标准是信息增益: 信息增益衡量的是通过某个特征进行数据划分前后熵的变化量。但是&…

stm32 / arduino TPL0401A使用教程

这是在给英国的一个学生讲课时用到的一个芯片,做一个dcdc的反馈电路,刚开始用的不是这个,后来发现国内这个芯片用的挺成熟,就选择了这个。 芯片说明 首先我买的是TPL0401A,我发现淘宝上卖的都是A,其实想用C&#xff0…

数据结构与算法之单链表面试题(新浪、百度、腾讯)

单链表面试题(新浪、百度、腾讯) 求单链表中的有效节点的个数 public int getCount(HeroNode head) {Hero1 cur head.getNext();int count 0;while(cur ! null) {count;cur cur.getNext();}return count;}查找单链表中的倒数第k个结点【新浪面试题】…

单板机8088C语言计划

计划将原来用汇编写的小程序,用C语言重新写一遍 计划2个月能完成 然后再试试,能不能用C写一下固件BootLoad 和一个类似Dos时代的Debug调试器

一周学会Pandas2之Python数据处理与分析-数据重塑与透视-pivot() - 透视 (长 -> 宽,有限制)

锋哥原创的Pandas2 Python数据处理与分析 视频教程: 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili pivot() 是 pandas 中用于数据重塑的核心方法,它将长格式数据转换为宽格式数据,与 melt() 方…

机器学习中无监督学习方法的聚类:划分式聚类、层次聚类、密度聚类

1.定义和特点 2.划分式聚类:K-Means 、 K-Medoids 3.层次聚类:树状图 4.密度聚类:DBSCAN 5.聚类的应用 一、定义和特点 机器学习中的无监督学习聚类是一种通过数据内在结构将样本分组的技术,无需预先标注的类别标签。 它的核心目…

【HW系列】—溯源与定位—Linux入侵排查

文章目录 一、Linux入侵排查1.账户安全2.特权用户排查(UID0)3.查看历史命令4.异常端口与进程端口排查进程排查 二、溯源分析1. 威胁情报(Threat Intelligence)2. IP定位(IP Geolocation)3. 端口扫描&#x…

CPO-BP+MOPSO,冠豪猪优化BP神经网络+多目标粒子群算法!(Matlab源码)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.CPO-BPNSGA,冠豪猪优化BP神经网络粒子群算法!(Matlab完整源码和数据),冠豪猪算法优化BP神经网络的权值和阈值,运行环境Matlab2020b及以上。 多…

模块化设计,static和extern(面试题常见)

文章目录 一、函数的声明和定义1.1 单个文件1.2 多个文件1.3 static和extern1.3.1 static修饰局部变量1.3.2 static修饰全局变量1.3.3 static修饰函数 总结 一、函数的声明和定义 1.1 单个文件 一般我们在使用函数的时候,直接将函数写出来就使用了 题目:写一个函数…

【快速解决】数据库快速导出成sql文件

1、cmd直接打开 输入命令 mysqldump -u用户名 -p密码 数据库名 > 导出文件名.sql修改成自己mysql的用户名和密码,和要导出的数据库名称,给导出的文件起一个名字。 如图所示 这样就成功了。

LearnOpenGL-笔记-其十二

今天我们来将LearnOpenGL的高级光照部分彻底完结: Bloom 泛光是一个非常常见的用于改善图像质量的手段,其主要做法就是将某个高亮度区域的亮度向四周发善以实现该区域更亮的视觉效果(因为显示器的亮度范围有限,需要通过泛光来体…

Namespace 命名空间的使用

名字空间:划分更多的逻辑空间,有效避免名字冲突的问题 1.什么是命名空间 名字命名空间 namespace 名字空间名 {...} // 名字空间 n1 域 namespace n1 {// 全局变量int g_money 0;void save(int money){g_money money;}void pay(int money){g_money - m…

mac 下安装Rust Toolchain(Nightly)

你可以用 Homebrew 安装 rustup,这是推荐的管理 Rust toolchain的 brew install rustup-init安装 Rust(包含 rustup) rustup-init安装过程中会让你选择安装那个,直接回车选择默认的即可 安装完成后,cargo, rustc, r…