【问题标题】:Matlab - distinguish overlapping low contrast objects in a RGB or Grayscale ImageMatlab - 区分 RGB 或灰度图像中重叠的低对比度对象
【发布时间】:2023-03-03 23:51:01
【问题描述】:

我在检测图像中的对象时遇到了一个大问题 - 我知道这个话题已经在许多论坛上得到了高度讨论,但我在过去 4 天里一直在寻找答案,但未能找到答案。

事实上:我有一张来自分支的图片 (http://cl.ly/image/343Y193b2m1c)。我的目标是计算这张照片中的每一根针。所以我不得不面对几个问题:

将带有针的分支与背景分开(在这种情况下没问题)。

选择针的边框。这是一个大问题;我尝试了不同的方法,包括所有 edge() 函数,但问题总是相同的 - 针周围的边界没有关闭 - 这导致了最后一个问题:

针重叠了!这会导致“针之间的正方形”,如果我使用 imfill() 或相等的公式,则填充而不是针。并且:针集中的地方(一个地方有很多针)几乎无法区分。

我尝试了分水岭,我尝试增强对比度,Kmeans 聚类,我尝试了 imerose、imdilate 和相关功能以及后续的边缘检测。我还尝试对图片进行一些过滤和平滑处理,以便稍微“锐化”针,这样并不是每一个颜色的微小变化都被识别为边框(这是另一个问题)。

我对matlab比较陌生,所以我不知道我要寻找什么。我尝试按照用于核检测的 MatLab 教程进行操作 - 但有了这个我就可以得到所有的绿色物体(一次所有的针)。

我希望以前没有出现过这个问题 - 如果是的话,我为重复发帖深表歉意。如果有人知道该做什么或使用什么方法,那将是非常棒的,并且可以保护这个非常糟糕的一周开始。

非常感谢您,

菲利普

【问题讨论】:

  • 我不确定你能否得到答案。我什至不知道这个分支上有多少针,所以对于一台计算机......
  • 是的,我也有同样的感觉——没有机会。好吧,也许有人有个好主意,我会等一会儿再放弃。
  • @PhillipG 你的实际目标是什么?有很多隐藏的(不仅是重叠的)针,所以你不能指望能够把它们都数一遍。我想您尝试做的事情还有其他目的。
  • 我的目标是看到 1:针数的及时变化,2:比较不同物种之间的针数,3:了解如何获得更多想法:D 我知道不会 100% 准确,但由于总会隐藏一些针(在我拍摄的每张照片中),它是一致的,但可以减少错误..
  • @PhillipG 完成第一项任务的方法可能与所要求的完全不同。例如,“时间变化”是指会不时拍摄照片来进行比较吗?例如,如果照明和定位不一致,这可能会变得更加困难。如果是,那么它可能会简单得多,并且与图像减法相关。对于第 2 项任务,我可能会尝试对物种进行分类(对不起,但缺乏细节,所以我不能说太多)。

标签: image matlab image-processing filtering detection


【解决方案1】:

区分重叠的对象非常非常困难,尤其是在您不知道必须区分多少个对象的情况下。你的大脑在区分重叠对象方面比我知道的任何分割算法都要好得多,因为它能够整合很多难以编码的信息。因此:如果您自己无法区分某些功能,请忘记通过代码进行。

话虽如此,可能有一种方法可以让您获得针的大致数量:如果您可以将图像像素分为两类:“针”与“非针”,并且您知道如何图片中的大部分区域都被针覆盖(拍照时包括尺子可能会有所帮助),然后您可以将“针”像素数除以单个针所覆盖的像素数来估算总数图像中的针数。由于重叠,这会有点低估针数,并且会低估针越密集(由于更多重叠),但它应该允许您自动比较具有大量针的分支和具有少量针的分支,以及至于识别时间变化,这应该是您的目标之一。

【讨论】:

  • 我也有同样的想法,可惜没那么容易。在分支的开头,针比分支的末端更密集且更长,这意味着我的结果偏差很大。但是对于“针”的一般估计和随时间的变化,这确实是一个很好的解决方案。谢谢你。
【解决方案2】:

我同意@Jonas = 你自己遇到了一个大问题。

让我提出一些建议。

首先,沿着@Jonas 的方向,不是得到准确的计数,另一种粗略估计的方法是计数针尖。显然,并非所有提示都清晰可见。但是,如果你能得到一个清晰的树枝遮罩,使用你自己提到的一些形态学操作来识别针尖可能会相对容易。

其次,有什么方法可以获得更多信息吗?例如,如果您可以获得深度信息,它可能有助于将针彼此区分开来(它不会完全解决任务,但它可能会有所帮助)。您可以从立体图像中获取深度信息 - 即在稍微移动相机的同时拍摄两张树枝照片。如果您可以使用 Kinect 设备(或其他一些测距相机),您可以直接获取深度图...

【讨论】:

  • 我今天白天尝试了这个(提示),但达到了我对图像处理理解的边界。提示也是绿色的,我不知道如何计算它们。我虽然在:计算被背景颜色的 X 像素包围的像素,但这不起作用。你知道如何开始吗?我真的很喜欢立体图片的想法,但是有可能获得更多信息吗?做照片很简单,我只是稍微移动一下第二张照片的静态 - 但你能告诉我从哪里开始吗?非常感谢您的回复:)
  • 用谷歌搜索。搜索词应该是“运动中的形状”(您正试图从相机的运动中恢复 形状)“立体重建”。我认为你应该看的一些例子是here 和这个FEX
猜你喜欢
  • 2018-02-14
  • 2015-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
  • 2011-12-03
相关资源
最近更新 更多