【发布时间】:2015-03-03 23:40:44
【问题描述】:
给定黑色的二进制图像,带有一些零星的白点,我正在寻找一种方法来“套索”边界矩形内的大多数白点。考虑这张图片:
看到不是所有点都被包围了,而是只包含明显比其他任何地方都多的白点的簇(或簇集)?
我已经知道如何使用 OpenCV put a bounding box around all of the white dots。谁能指导我如何分析此图像以找出一大堆点,忽略不属于组的任何外围点?
注意:此边界框不必倾斜。即使是凸包也可以作为输出。
我可以调整这些点的大小、颜色、alpha、位置、密度等。因此,如果您的想法涉及对这些点做某事以处理它们,那可能会奏效。
【问题讨论】:
-
I understand that phrase is hard to quantify。在您弄清楚如何量化之前,我们甚至都不知道您想要什么。例如,您在矩形的上边缘遗漏了一个点。怎么会?为什么你画的矩形更好,包括这个点?同样,在矩形的左边缘附近有一个相当孤独的点(定性地说)。为什么你画的矩形比排除那个点的小矩形更好?一旦你可以量化这一点,这个过程应该会为你推荐一个算法。 -
@SchighSchagh 也许最好忽略它。如果这样的建议有诸如可调整的密度常数之类的东西,那么我可以用它来量化一个“集群”。
-
“白点明显比其他任何地方都多?”哦,rly?你怎么知道=)。实施“常识”并不容易,而且往往非常主观。例如,我会排除顶部的点并包括左侧的点,我认为这会增加框内的密度。
-
即使没有这个短语,你仍然需要一些方法来量化它。我不知道你用什么来为你画的盒子创建这个指标,那么计算机怎么能希望呢?如果您说“将彼此相距 x 像素内的所有点作为一个组包括在内”,这将为您提供一个允许您构建它的指标。回答这个问题,你应该能够解决你的问题。 tl;博士:luk32 写的
-
@Olivier 好吧,说了这么多,我认为这是一个很好且有趣的问题,尽管没有关注真正的问题,即找到点簇的好方法是什么。我认为在分类问题领域有一些算法。这真的很重要。您可以查看一些资源:en.wikipedia.org/wiki/Cluster_analysis。顺便提一句。一句好话:“根据 Vladimir Estivill-Castro 的说法,“集群”的概念无法准确定义,这也是为什么有这么多集群算法的原因之一”。
标签: c++ opencv image-processing