opencv学习笔记 边缘滤波保留(EPF) 高斯双边 均值迁移

2018-08-30 15:18:57 浏览数 (1)

双边滤波函数bilateralFilter():定义:bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None) 

src: 图像矩阵

d:邻域直径

sigmaColor:颜色标准差

sigmaSpace:空间标准差

可以看出对图像的边缘处理的很好,左下角的图标没有模糊掉(图像边缘是指图像属性区域和另一个属性区域的交接处,是区域属性发生突变的地方,是图像不确定性最大的地方,也是图像信息最集中的地方,图像的边缘包含着丰富的信息)

代码语言:javascript复制
# coding=GBK
import cv2 as cv
import numpy as np

		
 
    
image1=cv.imread("D://bil.png")
cv.imshow("yuantu",image1)
dst=cv.bilateralFilter(image1,0,100,15)
cv.imshow("hanshu_gaussian",dst)
cv.waitKey(0)
cv.destroyAllWindows()

另一个EPF的经典实现是均值迁移

比起高斯双边,均值迁移有时候过度模糊

原型:

代码语言:javascript复制
void pyrMeanShiftFiltering( InputArray src, OutputArray dst,
                                         double sp, double sr, int maxLevel=1,
                                         TermCriteria termcrit=TermCriteria(
                                            TermCriteria::MAX_ITER TermCriteria::EPS,5,1) );

 src 是图像

sp:定义漂移物理空间半径大小

sr:    定义漂移色彩空间半径大小

代码语言:javascript复制
# coding=GBK
import cv2 as cv
import numpy as np

		
 
    
image1=cv.imread("D://bil.png")
cv.imshow("yuantu",image1)
dst=cv.pyrMeanShiftFiltering(image1,10,50)
cv.imshow("hanshu_gaussian",dst)
cv.waitKey(0)
cv.destroyAllWindows()

0 人点赞