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