[英]Binary Image, Concentrations of White Dots with OpenCV
给定黑色的二进制图像,并带有一些零星的白色点,我正在寻找一种方法来“套索”边界矩形内的大部分白色点。 考虑这张图片:
看到不是所有的点都被包围,而是白点(或簇集)的白点明显比其他地方多吗?
我已经知道如何使用OpenCV 在所有白点周围放置边框 。 谁能指导我如何分析图像中的大量点 ,而忽略不属于组的任何外围点?
注意:此边界框不必倾斜。 即使是凸包,也可以作为输出。
我可以调整这些点的大小,颜色,alpha,位置,密度等。 因此,如果您的想法涉及对这些点进行处理以进行处理,则可能会起作用。
您需要一种1-cluster检测算法,其中离群值检测很重要。 通常,对聚类算法进行设计和调整,以产生多个集群。 其中的一部分(例如k均值)甚至不处理异常值。 如果决定使用真正的群集算法,请尝试DBSCAN并将其设置为检测1个群集-它具有异常检测能力。
否则,您可以将您的问题视为度量最大化问题。
您想要一个既可以提高数据密度又可以提高包装盒尺寸的度量标准(因此最终不会得到1x1的包装盒)。 我提出以下建议:
metric_to_maximize = White_Dot_Density * Area^x
,其中x
是临时校准的。
可行的另一个想法是将图像划分为mxn矩形框。 计算每个盒子的平均密度。 选择顶部的x%(或所有具有density>threshold
矩形)。 围绕这些“好盒子”创建一个边界框,而不会包含过多的额外区域。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.