版权声明:原创文章转载请注明出处~ https://blog.csdn.net/PecoHe/article/details/89670658
0.综述
图像卷积之后图像的边缘信息会丢失,边缘保留滤波算法(EPF)则可以解决这个问题,滤波之后的输出可以完整的保存图像整体边缘的信息。常见的边缘保留滤波算法有:
- 高斯双边模糊
- 均值迁移模糊
1.高斯双边模糊
高斯模糊考虑了图像空间位置对权重的影响,离中心点越近权重越大。
void bilateralFilter( InputArray src,
OutputArray dst, int d,
double sigmaColor, double sigmaSpace,
int borderType = BORDER_DEFAULT );
其中d表示在过滤过程中每个像素邻域的直径范围。如果这个值是非正数,则函数会从第五个参数sigmaSpace计算该值。sigmaColor越大,表明该像素邻域内有越宽广的颜色会被混合到一起,产生较大的半相等颜色区域。 sigmaSpace:该值较大,则意味着颜色相近的较远的像素将相互影响,从而使更大的区域中足够相似的颜色获取相同的颜色。当d>0时,d指定了邻域大小且与sigmaSpace五官,否则d正比于sigmaSpace。
bilateralFilter(input_image, result, 0,100, 10, 4);
结果:
2.均值迁移模糊
void pyrMeanShiftFiltering( InputArray src, OutputArray dst,
double sp, double sr,
int maxLevel = 1,
TermCriteria termcrit
=TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS,5,1) );
pyrMeanShiftFiltering(input_image, result, 15, 50, 1, TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 5, 1));
结果: