IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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的卷积窗,将三次过滤的输出区域,取并集,这样就尽可能的筛选出我们想要的结果。

如有遗漏或不正确的知识点,还请提出宝贵建议,感谢!

参考博客:

halcon学习(一)dyn_threshold_莫干的博客-CSDN博客_dyn threshold

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:25:48  更:2022-03-21 21:29:40 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码