OpenCV - 删除图像中不需要的小 dots/noise

OpenCV - Remove small, unwanted dots/noise in an image

我的论文是建立一个乐谱(乐谱)识别系统。这是我的输入文件:

这是一些预处理和去除五线谱后的结果: 我在这里遇到的问题是,在五线谱删除步骤之后出现了一些超小的、不需要的 "dots"。这些 dots/noise 与实际的音乐 "dots" 符号不同:噪声点要小得多,它们大多出现在五线谱上。这些dots/noise会影响程序后面的识别阶段
我怎样才能删除这些 dots/noise ?

如果有非常小的点,您可能想尝试一些简单的图像处理技术,例如 erosion,它们适用于二值图像。它是 matlab/openCV 中可用的标准函数。您只需要定义内核的大小(这是您需要忽略的点的大小)。

您有两个简单的解决方案:

  • 测地线开场 <=> 侵蚀后进行测地线重建。如果没有在OpenCV中实现,可以进行简单的开运算(腐蚀+膨胀)。测地线开孔的好处是去除了小图案,但保留了剩余图案的原始形状。
  • 应用一个阈值来找到深色图案,标记它们,并删除最小的图案。这个结果和我之前的建议差不多,不同的是你没有使用结构元素。