gpt4 book ai didi

c++ - 二值图像,使用 OpenCV 的白点浓度

转载 作者:太空宇宙 更新时间:2023-11-03 22:29:42 27 4
gpt4 key购买 nike

给定一个黑色的二值图像,其中有一些零星的白点,我正在寻找一种方法来“套索”边界矩形内的大部分白点。考虑这张图片:

enter image description here

看看为什么不是所有的点都被包围了,而是只包围了明显比其他任何地方都多的白点的簇(或一组簇)?

我已经知道如何put a bounding box around all of the white dots使用 OpenCV。任何人都可以指导我如何分析此图像的大量点,而忽略任何不属于一组的外围点吗?

注意:此边界框不必倾斜。即使是凸包也可以作为输出。

我可以调整这些点的大小、颜色、alpha、位置、密度等。因此,如果您的想法涉及对这些点进行处理以处理它们,那可能会奏效。

最佳答案

您需要的是一种单聚类检测算法,其中离群值检测很重要。聚类算法通常被设计和调整为产生多个聚类;其中一部分(例如 k-means)甚至不处理异常值。如果您决定使用真正的聚类算法,请尝试 DBSCAN并将其设置为检测 1 个聚类 - 它具有离群值检测能力。

否则,您可以将您的问题视为度量最大化问题。

您想要一个既能因数据密度而受到奖励,又能因框大小而受到奖励的指标(因此您最终不会得到 1x1 框)。我提出以下建议:

metric_to_maximize = White_Dot_Density * Area^x,其中 x 是临时校准的。

另一个可能可行的想法是将图像分成 m x n 个矩形框。计算每个盒子的平均密度。选择顶部的 x%(或所有具有 density>threshold 的矩形)。在不包括太多额外区域的情况下,围绕这些“好框”创建边界框。

关于c++ - 二值图像,使用 OpenCV 的白点浓度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28844172/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com