【发布时间】:2014-03-03 09:51:23
【问题描述】:
我有一个向量,我需要为其计算一个阈值以将其转换为二进制向量(高于阈值 = 1,低于 = 0)。向量的值要么接近零,要么远离零。因此,如果绘制向量,值要么位于 X 轴附近,要么飙升(因此值之间存在明显差异)。每次,向量中的值都会改变,所以我需要动态计算阈值。向量可以采用的最大值或最小值没有限制。我知道 otsu 的方法用于灰度图像,但由于我的向量的范围值是变化的,我想我不能使用它。是否有任何标准方法来计算我的案例的阈值?如果没有,有什么好的解决方法吗?
【问题讨论】:
-
能否发布您的数据样本(包括标准案例和极端案例)以及您目前获得的相关代码?
-
您可以指定要变为 1 的值的比例。例如,对于 50%,您的阈值将是
median(vector)。 -
将每个向量归一化为 [0 1] 并使用 0.5 进行阈值化?
-
除非您定义您希望如何更详细地分隔值,否则它是任意的。但这听起来像是一个分类问题。 Matlab 有大量的工具箱。
-
好的。现在,我正在对向量进行归一化并应用 otsu 的方法,增量为 0.01。它工作正常。谢谢
标签: matlab vector binary-data