原始 MediaWiki 页面

我知道编辑这个网站吗?
the Fiji distribution of ImageJ本页介绍与 the Fiji distribution of ImageJ 相关的内容。点击徽标查看详情。

自动本地阈值

自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南

该插件使用各种局部阈值方法对8图像位进行二值化。这里的“局部”表示根据其周围半径r(以像素单位)的窗口内图像的特征来计算每个像素的阈值。矩阵相始终显示为白色(255)。

对于全局阈值而不是本地阈值,请参阅Auto Threshold插件。

安装

ImageJ:需要 v1.42m 或更高版本。下载Auto_Threshold-X.Y.Z.jar并将其复制到 ImageJ/plugins 文件夹中,然后重新启动 ImageJ 或运行ImageAdjustAuto Local Threshold命令。此后,新命令应出现在HelpUpdate Menus中。

斐济:该插件是斐济发行版的一部分,消耗下载。

使用

方法 选择要应用的算法(详细信息如下)。

半径设置计算局部域的半径阈值。

黑色背景上的白色对象将值与阈值的像素设置为白色(否则,将值小于或等于阈值的像素设置为白色)。

特殊参数 1 和 2 为端点方法设置特定值。下面详细介绍了端点方法。

如果您正在处理堆栈,则使用附加选项:堆栈可用于处理所有切片。

可用方法

全部尝试

哪种方法可以最好地分割您的数据?您可以尝试使用 全部尝试 选项来回答此问题。这会生成包含所有方法结果的蒙太奇,因此人们可以探索不同的算法如何在或堆栈上执行。

Epith

图像原始

Epithm2

尝试所有方法。

当处理有多个切片的堆栈时,蒙太奇可能会变得非常大(原始堆栈大小的几倍),并且存在内存耗尽的风险。将出现一个弹出窗口(当堆栈超过25个切片时)以确认程序是否应显示堆栈蒙太奇。

###伯恩森

实现Bernsen的阈值方法。请注意,此实现使用圆形窗口而不是原始中型窗口。

参数1:是恢复阈值默认。值为15。任何中断0的数字都会更改默认值。

参数2:未使用,忽略。

该方法使用用户提供的损失阈值。如果局部损失(最大)等于或等于损失阈值,则阈值设置为局部中灰度值(局部窗口中最小和最大灰度值的目标)。如果“局部损失”低于“损失阈值”,则邻域仅由一类组成,并根据中灰度值像素将设置为对象或背景。

if ( local_contrast < contrast_threshold )
 pixel = ( mid_gray >= 128 ) ? object :  background  
else
 pixel = ( pixel >= mid_gray ) ? object : background

doi:10.4236/oalib.1101203

doi:10.1117/1.1631315

基于 ME Celebi 的 fourier_0.8 例程 12

对比

基于简单的触发切换。将像素值设置为白色(255)或黑色(0),具体取决于其当前值是否接近最局部顶端或最中间。该过程是切换触发增强的极端情况,请参阅示例:

doi:10.1007/978-3-662-05088-0

除了内核内核之外,该过程不提供用户的参数。

的意思是

这选择阈值作为局部梯度的挥动。这种方法的变体使用挥动-C,其中C是局部。

pixel = ( pixel > mean - c ) ? object : background

参数1:是C值。默认值为0。任何其他数字都会更改默认值。

参数2:未使用,忽略。

http://homepages.inf.ed.ac.uk/rbf/HIPR2/adpthrsh.htm

###中添加

本方法选择阈值作为局部局部分布的中值。该方法的一种变体采用中分配 - C,其中 C 为局部。

pixel = ( pixel > median - c ) ? object : background

参数1:是C值。默认值为0。任何其他数字都会更改默认值。

参数2:未使用,忽略。

http://homepages.inf.ed.ac.uk/rbf/HIPR2/adpthrsh.htm

中灰

这将阈值选择为局部梯度分布的中灰度(即(顶部+最小)/2)。这种方法的变体使用中灰度 - C,其中 C 是稀疏。

pixel = ( pixel > ( ( max + min ) / 2 ) - c ) ? object : background

参数1:是C值。默认值为0。任何其他数字都会更改默认值。

参数2:未使用,忽略。

http://homepages.inf.ed.ac.uk/rbf/HIPR2/adpthrsh.htm

尼布莱克

实现Niblack的阈值方法:

pixel = ( pixel >  mean + k * standard_deviation - c) ? object : background

参数1:是k值。对于明亮的对象,默认值为0.2;对于黑暗的对象,默认值为-0.2。0之外的任何其他数字都会更改默认值。

参数2:是C值。这是一个偏移量,默认值为0。0以外的任何其他数字都会更改其值。该参数是在1.3版本中添加的,不是算法原始实现的一部分。当C = 0时应用原始算法。

Invalid citation arguments: {"last"=>"Niblack", "first"=>"W", "year"=>"1986", "journal"=>"", "title"=>"An introduction to Digital Image Processing, Prentice-Hall"}

移植自 ME Celebi 的 fourier_0.8 例程 34

大津

实现大津全局阈值的局部版本。该算法搜索最小化类内反向的阈值,类内反向定义为两类的反向的加权和。局部集是一个圆形ROI,中心像素根据该区域找到的大津阈值进行测试。

doi:10.1109/TSMC.1979.4310076

另请参阅Wikipedia article on Otsu’s method

由 Jordan Bevik 从 C++ 代码移植而来。

潘萨尔卡

这是对 Sauvola 阈值方法的修改,用于处理低恢复图像。

doi:10.1109/ICCSP.2011.5739305

在此方法中,阈值t计算如下:

t = mean * (1 + p * exp(-q * mean) + k * ((stdev / r) - 1))

其中mean和stdev分别是局部干和标准差。 Phansalkar建议 k = 0.25、r = 0.5、p = 2 和 q = 10。这里插件中,kr 分别是参数 1 和 2,但 pq 的值是固定的。

参数1:是k值。默认值为0.25。0之外的任何其他数字都会改变其值。

参数2:是r值。默认值为0.5。该值与Sauvola的值不同,因为它使用图像的归一化强度。0之外的任何其他数字都会改变其值。

根据 Phansalkar 的论文描述,尽管该版本使用圆形而不是圆形局部窗口。

索沃拉

实现 Sauvola 的阈值方法,该方法是 Niblack 方法的变体

pixel = ( pixel > mean * ( 1 + k * ( standard_deviation / r - 1 ) ) ) ? object : background

参数1:是k值。默认值为0.5。0之外的任何其他数字都会更改默认值。

参数2:是r值。默认值为128。0以外的任何其他数字都会更改默认值

doi:10.1016/S0031-3203(99)00055-2

移植自 ME Celebi 的 fourier_0.8 例程 56