Я хотел бы знать, есть ли среди функций фильтра 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
Я бы сделал это так:
1. найти свои линии
2. удалить пиксели выбранных линий
Вы можете уменьшить вертикальный или горизонтальный шум, регулируя размер ядра с помощью простого пятно операция
Пример пихты для вашего изображения с вертикальным шумом, который вы можете использовать
blur(src,dst,Size(11,1));
Обратите внимание, что здесь размер ядра в вертикальном направлении является более высоким значением по сравнению с горизонтальным.
Смотрите изображение до и после фильтрации
Точно так же для горизонтального просто используйте обратный размер ядра, как
blur(src,dst,Size(1,11));
Увидеть результат