图像处理过程中,会经常涉及”滤波”和”模糊”,两个概念容易混淆,两个概念既有联系又有区别,简单来说,如果将滤波分为低通滤波和高通滤波,低通就是模糊,高通就是锐化。
关于滤波与模糊操作,Opencv中常用函数有以下几种:
image_output=cv.blur(image, (3, 3))
image为输入图像,(3,3)为内核的大小,根据需要调整。
image_output = cv.medianBlur(image, 3)
image为输入图像,3为滤波模板的尺寸大小,必须是大于1的奇数,根据需要调整。
image_output=cv.GaussianBlur(src, (0, 0), x,y)
image为输入图像,(0,0)为高斯内核的大小,他们都必须为正数和奇数,或者,它们可以是零,x和y为高斯核函数在X方向和y方向的标准偏差。
image_output=cv.bilateralFilter(image, int d, double sigmaColor, double sigmaSpace)
image为输入图像,int d 表示在过滤过程中每个像素邻域的直径范围。double sigmaColor 颜色空间过滤器的sigma值,这个参数的值越大,表明该像素邻域内越多的颜色会被混合到一起,产生较大的相等颜色区域,double sigmaSpace 坐标空间中滤波器的sigma值,如果该值较大,则意味着颜色相近的较远的像素将相互影响,从而使更大的区域中相似的颜色获取相同的颜色。