Как реализовать despeckle в OpenCV? - PullRequest
6 голосов
/ 15 апреля 2011

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

1 Ответ

9 голосов
/ 21 апреля 2011

Стандартные методы размытия, которые объединяют изображение с ядром (например, размытие по Гауссу, блочный фильтр и т. Д.), Действуют как фильтр нижних частот и искажают высокочастотный текст. Если вы еще этого не сделали, попробуйте cv::bilateralFilter() или cv::medianBlur(). Если ни один из этих алгоритмов не работает, вам следует изучить другие сохраняющие края алгоритмы сглаживания .

Если вы представляете изображение как трехмерное пространство, традиционная фильтрация заменяет значение каждого пикселя средневзвешенным значением всех фильтров в круге с центром вокруг пикселя. Двусторонняя фильтрация делает то же самое, но использует трехмерную сферу с центром в пикселе. Поскольку четко определенный край выглядит как плато, сфера содержит только одну точку, а значение пикселя остается неизменным. Вы можете получить более подробное объяснение двустороннего фильтра и некоторые примеры вывода здесь .

...