OpenCV边缘保留滤波算法

版权声明:原创文章转载请注明出处~ https://blog.csdn.net/PecoHe/article/details/89670658

OpenCV边缘保留滤波算法

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));

结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/PecoHe/article/details/89670658