阈值分割的理解文档格式.docx
- 文档编号:15414510
- 上传时间:2022-10-30
- 格式:DOCX
- 页数:15
- 大小:1.10MB
阈值分割的理解文档格式.docx
《阈值分割的理解文档格式.docx》由会员分享,可在线阅读,更多相关《阈值分割的理解文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
因为需要装啊!
就像现在搞IT的人不搞几个新名词让人们头晕怎么忽悠钱呢?
既然大家已经进入了影像处理行业,为了入乡随俗,或者说为了装深沉,
确切的说为了好忽悠客户。
请大家使用阈值这个“高深”词汇。
这样妹子票子就都有了。
。
好了废话说完,下面进入正题。
如果使用阈值提取咱们需要的图像。
在HALCON里面提供以下阈值提供方法或是函数:
一:
最初级的阈值提取
threshold(输入图像,输出的区域,阈值的下限,阈值的上限)
二:
稍微牛X一点的自动地全局阈值(就是自动确定阈值的范围)
bin_threshold(输入图像,输出的区域)
三:
更牛X的动态阈值
dyn_threshold(输入的图像,输入的分割模板,输出的区域,偏移值,要亮的还是要暗的)
四:
大绝招之Watershed中文名分水岭
(尚未领悟该招数,待续)
五:
大绝招之Watershed的加强版watersheds_threshold
这个招术主要是用于对付下面这张图片,
你看,这黑的是黑白的是白,清晰清楚几个鸟国文字印在上面。
对付这种图片只要使用
threshold即可。
参数一:
就是这个灰度图了,
参数二:
就是我们要的区域了
参数三和四怎么定呢?
见下图。
HALCON很贴心的给我们提供查看当前灰度值的工作,只要把鼠标放在图像,那么HALCON软件的右下角就显示当前的灰度值了。
我们把鼠标在文字(Limit)上移动一下,大致可以判断出来灰度值最小也有130,既然如此
我们就知道参数三个参数四怎么填了。
就是130和255。
看下效果
好了我们还要的区域被提取出来了。
有的哥们说周围那一大片红的咋办呢?
怎么去除呢?
我想说这已经偏离主题了,不过可以告诉你非常极其简单就可以实现。
自动地全局阈值
bin_threshold。
本来想在HALCON里面演示这个例子,不过由于鄙人的升级速度太快,一不小心干到版本12了。
在版本12里面已经不再支持了bin_threshold了。
提供了稍微复杂的些的加强招数:
binary_threshold
不过在说binary_threshold之前,我们还是把
bin_threshold说清楚吧。
因为他的确简单易用。
这个自动全局阈值的核心就是自动确定阈值,那么他是如何确定的呢?
我们继续上面那个图(limit)的例子。
下面阈值确定的步骤:
第一步:
把图片的灰度值数出来,然后画出图。
为了好忽悠,我们的给这张图起来个名字:
灰度直方图。
其实就是数一数灰度为0的像素点有几个,灰度值为1的像素点有几个,灰度值为2的像素有几个,。
一直到
灰度值为255的像素点为几个。
最后画成一张图,下面有请“灰度直方图”闪亮登场。
(鲜花,掌声)
从这张灰度直方图上面,俺们看到,灰度值只要集中在40-90
和160-230,就是说这些灰度数值的像素点比较多。
好了第一步做完了。
第二步:
平滑灰度直方图,为了让大家知道什么叫平滑,我将向大家展示我惊人的绘画技巧(多次获得幼儿园杯大奖赛冠军)
掌声,鲜花。
请看图。
原来灰度直方图上面有很多细小的毛刺,做完平滑后都就是图上的红线了。
(PS:
红线应该是很平滑的,但是由于我幼儿园毕业很多年了,画工有些退步,请见谅)
第三步:
需要波峰处的灰度值(大致是65)作为阈值的上限,
波谷出的灰度值(大致是120)作为阈值下限
将其提取出来。
效果如下:
×
我是美丽的分割线×
好了
bin_threshold说完了,咱们接着说他的加强版binary_threshold(在HALCON12里面提供了)
这样大家就做比较了。
这个招数或者说函数的参数比较多一些。
依次是:
输入的图像
输出的区域
参数三:
模式max_separability'
smooth_histo
max_separability'
==如果使用这种模式,那么将统计灰度值直方图上面的灰度值分布情况,然后基于最大分离前景(亮的部分)和背景(暗的部分)的原则确定分界值
也就是阈值。
特别说明这个模式只可以对byte和uint2类型的图像处理
'
smooth_histo==如果选择这种模式的话,首先平滑灰度直方图,然后在确定阈值。
参数四:
要亮的还是要暗的('
dark'
就是要暗的部分
light'
就是要亮的部分)
第五个参数:
只有一个UsedThreshold可选,估计是HALCON的研发人员为了以后再次升级该函数使用的。
看效果
补充说明:
以上使用的都是全局阈值的方法,为啥叫全局阈值呢?
因为一旦把阈值确定下来了就是拿这个阈值数(比如60),对正副图片的每一个像素的灰度值进行比较。
全局阈值的实现党获取有自动获取和手动设定两种方式。
自动获取的方法有bin_threshold
(或者binary_threshold)
手动设定有:
threshold
下面介绍一种新的方式介于手动设定和自动设定二者之间:
步骤一:
使用gray_histo
获取图像的直方图(其实返回的有两个直方图一个是绝对直方图一个相对直方图)
步骤二:
使用sort_index寻找出现频率最高的灰度值
步骤三:
把比最高灰度值小一定灰阶值的灰度值作为阈值
动态阈值
对于一些背景比较单纯的图像,使用全局阈值是比较适用的,但是现实往往残酷的,由于光线的变化或是其他原因我们很难得到背景单纯的图像,更多的类似于背景复杂的图像(见:
图像从左下角到右上角亮度逐渐降低,如果使用全局阈值的话,不论怎么提取都是不行的。
那怎么办呢?
放弃?
NO!
放弃不符合我们傲娇的逼格。
经过一番摸索我们找到了名为动态阈值分割的招式。
啥意思?
动态还阈值
又什么分割?
这么长的名字
这是吓唬咱老百姓吗?
群众是这么容易被吓到的吗?
当然不是。
下面就让我层层拆解
这什么玩意分割。
动态阈值。
他有个孪生兄弟名叫局部阈值,为啥我们要局部阈值这个数据呢?
为啥局部阈值这个数据这么重要的。
因为啊,虽然整个图像(全局阈值的思想去分割提取了。
下面几张图,是我对(
翠花!
上酸菜。
哦不上图
通过第一步我们明白了动态阈值(局部阈值)的概念,但是问题来了。
难道需要我们一点一点截图图片吗?
这也太苦逼了。
这如何能够符合我们傲娇的逼格呢?
这当然不符合,所以我们找到了mean_image(均值滤波)工具,这货专业为我们提高局部阈值。
如果你想深入的了解mean_image,请移步鄙人的另一个帖子:
如果你老不想挪窝,就看下面这张图,感性认识均值滤波。
再来一张山河图的(此时此刻我不禁要吟诗一首:
横看成岭侧成峰,远近高低各不同)掌声在哪里?
?
好了图也看过了该说正题了了吧?
这均值滤波干了什么事?
费劲千辛万苦终于找到了局部阈值,就可以正式开始动作分割了。
就是他了:
dyn_threshold
要被处理的灰度图
均值滤波函数产生的图像
生成的区域,就是我们要的东西
偏移值
客户:
啥玩意?
偏移值
又那新词忽悠我。
火速说明一下。
鄙人:
好的,客官你稍等。
马上就好了。
参数五:
要亮的还是要暗的(要山峰还是河流)
后记:
均值滤波的滤波模板大小的选择
见下图
最后整个看下效果(由于本次使用的图片过于负责,所以动态阈值后还需要做一些其他处理,但是不是这个帖子的主题,所以就不展开说明了)
最后念上一段词慰劳自己
衣带渐宽终不悔,为伊消得人憔悴。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 阈值 分割 理解