2016-12-27 6 views
2

Я работаю над диссертацией по созданию системы распознавания музыки (листов). Это мой входной файл: enter image description hereOpenCV - удалить небольшие, нежелательные точки/шум на изображении

Это результат после некоторого предварительной обработки и персонала линии удаления: enter image description here Проблемы, которую я встреча здесь является то, что есть некоторые очень маленькая, нежелательная «точка» появилась после того, как штат служащих линия удаление уровень. Эти точки/шум отличаются от фактических музыкальных символов «точек»: шумовые точки намного меньше, и они в основном появляются на линиях персонала. Эти точки/шум повлияют на этап распознавания позже в программе.
Как удалить эти точки/шум?

+0

Можете ли вы поделиться кодом, который использовался для генерации вывода. Возможно, некоторые изменения в ваших переменных приведут к улучшению результатов. – ZdaR

+0

Я бы предложил применить алгоритм порога Sauvola на вашем исходном изображении, за которым следует соответствующая морфологическая операция, указанная в ответах –

+0

Чтобы удалить мелкие точки (побочный шум), вы можете попробовать применить средний фильтр –

ответ

3

Если есть очень маленькие точки, вы можете попробовать некоторые простые методы обработки изображений, такие как erosion, они работают с бинарными изображениями. Это стандартная функция, доступная в matlab/openCV. Вам просто нужно определить размер вашего ядра (размер которого нужно игнорировать).

1

У вас есть два простых решение:

  • Геодезического открытие < => эрозия с последующим геодезической реконструкцией. Если он не реализован в OpenCV, вы можете выполнить простое открытие (эрозия + расширение). Геодезическое отверстие имеет преимущество для удаления мелких узоров, но для сохранения первоначальной формы оставшихся узоров.
  • Применить порог, чтобы найти темные узоры, пометить их и удалить самые маленькие. Этот результат сравним с моим предыдущим предложением, разница в том, что вы не используете элемент структурирования.