【发布时间】: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