OTSU(I,N)是一款利用Otsu阈值法在MATLAB环境中实现的函数,能够高效地使用N个预设阈值将输入图像I分割成N类,适用于各类图像处理与分析任务。
IDX = OTSU(I,N) 使用 Otsu 的 N 阈值方法将图像 I 分割为 N 类别,并返回一个数组 IDX,其中包含每个点的集群索引(从 1 到 N)。 当未指定类别数量时,默认使用两个类别的分割方式:IDX = OTSU(I)。 若需要进一步的信息,则可以通过以下命令获取:[IDX,sep] = OTSU(I,N),这将返回范围 [0 1] 内的可分离性标准值 (sep)。 可分离性标准值为零仅在数据少于 N 值时出现,而当数组恰好包含 N 值时则会得到一(最佳值)。 若输入图像 I 是 RGB 形式的,则首先会在 R、G 和 B 三个通道上执行 Karhunen-Loeve 变换。 接着对含有最多能量的图像组件进行分割。
示例代码如下:
加载小丑子图(221)
X = ind2gray(X,map);
显示原始图像
对于 n 的值从 2 到 4,依次执行以下操作:IDX = otsu(X,n); 子图(2,2,n) imagesc()