| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Halcon(一)- dyn_threshold 不均匀背景中的瑕疵检测 -> 正文阅读 |
|
[游戏开发]Halcon(一)- dyn_threshold 不均匀背景中的瑕疵检测 |
Halcon 提供了几种阈值分割的算子,比如: threshold(Image, filteredRegion,5, 255) 图像中,所有满足5<=grayValue<=255的像素,都会被输出成region。 这样对于背景光照比较均匀的项目来说,效果不错,假设背景亮度本身存在一定的差异, 那么就需要用到dyn_threshold算子来进行处理。 dyn_threshold(OrigImage,ThresholdImage : RegionDynThresh :Offset,LightDark : ) a. OrigImage 原图像 b.?ThresholdImage 参考阈值图像 c.?RegionDynThresh? 输出的Region,也就是我们想要的结果 d.?Offset 阈值大小 e? . LightDark 根据特征进行选择,如果目标特征的灰度值较小,选择"dark", 反之选择"light" ? 对比threashold, 最根本的区别就是加入了参考阈值图像, 也就是说,每个像素的阈值分割,有参考阈值和Offse这个固定阈值来决定: The condition for LightDark = 'light' is:g_o>=g_t+offset ,light就提取相对参考图更亮的区域。 For LightDark='dark' ,the conditon is: g_o<=g_t-offset ,dark就提取相对参考图更暗的区域 For LightDark='equal',g_t-offset<=g_o<=g_t+offset,选取和参考图差不多的区域。 使用这个算子的大概流程如下: 1. 获取ROI。如果图片中不包含无关信息,请跳过此步骤。 通过模板匹配等方法,定位到需要处理的Region,通过ReduceDomain先拿到ROI图像。 2. MeanImage 获取参考阈值图像 比如 mean_image(ProcImage, ProcMeanImage, 15, 15) 会用15*15的卷积核,对原图像进行加权平均,卷积核的尺寸越大,图像越模糊。 参考Halcon文档的解释: Withdyn_threshold, contours of an object can be extracted, where the objects' size (diameter) is determined by the mask size of the lowpass filter and the amplitude of the objects' edges. 我的理解: (一). 卷积核尺寸越大,对应的低通滤波器的截止频率越低,图像的低频成分越多。 (二). 由检测对象的的对比度决定卷积窗的大小,如果对比度较小,意味着检测对象本身的频率较低,需要用更低频的滤波器来做阈值分割(dyn_threashold), 意味着选择的卷积窗大小相对较大; 如果对比度较大,以为者检测对象本身的属于较高频的信号, 此时,卷积窗尺寸可以相对较小。 具体选择多大的卷积窗,参考文档给出的解释: The larger the mask size is chosen, the larger the found regions become. As a rule of thumb, the mask size shouldbe about twice the diameter of the objects to be extracted. 根据经验,卷积核尺寸通常为两倍检测对象直径。 3.?DynThreshold 动态阈值分割 前期的准备好以后,就用此方法进行动态阈值分割 比如: dyn_threshold (ProcImage, ProcMeanImage, ProcDarkPixels, 22, 'dark') 4. 后期优化 当然,如果在同一幅图中,需要检测的对象的尺寸相差较大,可将检测对象的尺寸划分成几档,对于这几档,选择不同的卷积核尺寸,将2~3步进行重复。比如检测对象的像素尺寸为100, 50, 20,就选择201*201,101*101,41*41的卷积窗,将三次过滤的输出区域,取并集,这样就尽可能的筛选出我们想要的结果。 如有遗漏或不正确的知识点,还请提出宝贵建议,感谢! 参考博客: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 18:54:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |