我试图通过使用Java中基于标记的OpenCV分水岭实现对图像进行过分分割。

我的想法是搜索所有局部最小值并将其用作标记。
不幸的是,分水岭需要CV_8U类型的矩阵作为标记输入,因此,我不能真正获得超过255个标记。

有没有人有解决此问题的方法,或者是否有其他解决方案可以使用OpenCV实现过度细分?

java - 如何使用OpenCV中的分水岭变换实现过度分割?-LMLPHP

最佳答案

随机分水岭可以帮助您解决此问题。原理是应用多个分水岭。

就您而言,您可以执行以下操作:

  • 查找所有本地最小值
  • 选择N个本地最小值
  • 应用分水岭
  • 将结果/边界存储到累加器
  • 重复步骤2、3和4 M次
  • 保持累加器中具有至少X%的M票的边界。

  • 另一种解决方案是使用SMIL library。您可以从Java调用它,并且可以确保所实现的算法是快速的并且没有偏见。

    关于java - 如何使用OpenCV中的分水岭变换实现过度分割?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41521153/

    10-12 22:20