Какой фильтр лучше всего удаляет горизонтальные вертикальные полосовые шумы (hvbn) с изображения

Я хотел бы знать, есть ли среди функций фильтра OpenCV какая-то конкретная, которая подходит для удаления горизонтальных / вертикальных полосовых шумов на изображении? Мол, для шума соли и перца Гауссово размытие работает лучше всего. Или процесс удаления полосовых шумов представляет собой комбинацию разных фильтров?

Пробовал уже несколько фильтров, таких как двусторонний, гауссовский, медианный и размытый (однородный), но вертикальные полосы не кажутся исчезающими или значительно уменьшающимися, или иногда получающееся изображение просто сглаживается. Я бы предпочел, чтобы изображение было сохранено, только чтобы шум был удален.

Я заинтересован, чтобы сделать удаление шума в OpenCV, C ++, в частности. Любые основные шаги, концепции или учебное пособие было бы замечательно. Спасибо

Примеры изображений здесь, которые показывают очевидные отметки вертикальных полос шума. Эти изображения, кстати, являются выходами сканера.

https://drive.google.com/file/d/0B1aXcXzD_OADMkNuNnJxNGw2NTA/edit?usp=sharing
https://drive.google.com/file/d/0B1aXcXzD_OADNkFBbGgxU20yMjg/edit?usp=sharing

0

Решение

Я бы сделал это так:

1. найти свои линии

  • например, поиск повторяющихся выступов / ребер при первом выводе по x или y;
  • затем выберите только те, которые находятся в среднем периоде место
  • и соседние линии / ряды также имеют этот выступ рядом с тем же местом

2. удалить пиксели выбранных линий

  • просто взять цвет до и после удара
  • и интерполировать между ними (например, средний цвет)
  • также в некоторых случаях вы можете вычесть постоянный цвет из всех пикселей линии
  • зависит от механизма смешивания цветов, который создал эти линии
0

Другие решения

Вы можете уменьшить вертикальный или горизонтальный шум, регулируя размер ядра с помощью простого пятно операция

Пример пихты для вашего изображения с вертикальным шумом, который вы можете использовать

blur(src,dst,Size(11,1));

Обратите внимание, что здесь размер ядра в вертикальном направлении является более высоким значением по сравнению с горизонтальным.

Смотрите изображение до и после фильтрации

введите описание изображения здесь

введите описание изображения здесь

Точно так же для горизонтального просто используйте обратный размер ядра, как

blur(src,dst,Size(1,11));

Увидеть результат

введите описание изображения здесь введите описание изображения здесь

0

По вопросам рекламы [email protected]