首页 > 解决方案 > 删除opencv中未连接的小斑点

问题描述

我有图像: 在此处输入图像描述

我想删除像这样的小斑点(并非所有这些都被指定): 在此处输入图像描述

中值和侵蚀不适合我,因为它们也会破坏所需的边缘(线状)。我的想法是移动指定大小的滑动窗口并检查是否有一个轮廓(blob)不接触窗口边界,它完全适合这个窗口并且需要被删除。

有没有适合我的算法或者我必须实现上述想法(但这可能不应该由我优化)

标签: opencv-python

解决方案


实际上,当我们找到轮廓时,我们可以通过命令将每个轮廓按矩形包围cv2.minAreaRect(cnt),然后检查矩形的宽度和高度是否大于我们的最小轮廓大小。所有轮廓(黄色边缘)都被红色矩形包围。
在此处输入图像描述

相同的图像,但不包括外接矩形边小于指定阈值的轮廓: 在此处输入图像描述


推荐阅读