【问题标题】:How to perform segmentation on complex images like rocks (in c++)如何对岩石等复杂图像进行分割(在 C++ 中)
【发布时间】:2018-09-10 22:55:42
【问题描述】:

我正在尝试对岩石图片进行分割(我已附上示例)。最终目标是找到近似的岩石区域(不确定所需的方法是否是图像分割)。

我尝试了几种算法:

  • 纹理分割无济于事,因为所有岩石都相似。
  • 我可以得到很多错误的边缘。由于阴影。虽然可以使用。

这是输入图像的示例(您可以忽略篮球):

请尽可能具体。考虑到这个话题的复杂性,我有点新。

【问题讨论】:

  • 岩石面积是什么意思?在这张图片上,它只是整个图片区域。
  • robots.ox.ac.uk/~szheng/crfasrnndemomi.eng.cam.ac.uk/projects/segnet 用您的数据训练应该可以解决问题。
  • 我处理了你的图片,得到如下结果,如果是的话,我可以分享代码。 imgur.com/a/o2Gic
  • @Yves 面向摄像机的岩石区域。假设相机到岩石的距离是已知的。您可以找到岩石表面的面积。
  • @EhsanAb:如果你有足够的 2D 区域,那么 ImageWidth x ImageHeight。如果您希望单个岩石的表面具有一定的准确性,请将其丢弃,而 2D 视觉则无法做到。

标签: c++ opencv image-processing


【解决方案1】:

稍微模糊图像并应用分水岭之类的图像分割方法或多或少可以解决问题。但由于岩石边界与岩石本身的纹理相似,这并非易事。我建议如下:

  • 如果您不需要高精度,请尝试上述方法,并使用一些手动标注的图像测量预期误差。
  • 如果准确性非常重要并且您可以寻求用户帮助,请创建一个用户界面,用户可以在其中在每块岩石上放置一个标记。然后使用从这些标记(也称为种子点)开始的分水岭变体来执行种子分割。 (OpenCV 中的分水岭实现可以做到这一点。)

【讨论】:

  • 谢谢克里斯托夫,我会试试的。
猜你喜欢
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 2020-02-10
  • 1970-01-01
  • 2020-06-04
  • 1970-01-01
  • 2014-06-09
  • 1970-01-01
相关资源
最近更新 更多