图像滤波函数
cv2.bilateralFilter(InputArray src,OutputArray dst, int d,double sigmaColor,double sigmaSpace,int borderType = BORDER_DEFAULT) 将双边滤波器应用于图像,该函数适用双边滤波对输入的图像,可以减少不必要的噪音,同时保持较锋利的边缘。然而,与其他滤波器相比它的速度很慢。http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html sigma的值:简而言之你可以设置2个sigma值相等,如果他们取值很小(<10),那么滤波的作用是很有限的,如果它们的值很大(>150),那么它们会有很给力的效果,让图片看上去很“卡通” Filter size:较大的滤波器是很慢的,因此建议使用d=5作为实际应用,当然你也许会在噪声严重的滤波中使用9x9滤波 d:过滤过程中每个像素的邻域的直径 sigmacolor:颜色空间中的标准方差,参数值较大时意味着在像素点领域内的更多的颜色会被混合在一起,结果导致较大区域内的颜色半等 sigmaspace:坐标空间的标准方差,参数的较大值意味着更远的像素将与相互影响,只要它们的颜色足够相近。 borderType:详见图像扩边cv2.copyMakeBorder() |
cv2.blur(InputArray- src,OutputArray- dst,size- ksize,point- anchor=Point(-1,-1),int borderType = BORDER_DEFAULT) 模糊图像使用归一化的框过滤器。内核为︰K=1ksize.width*ksize.height⎡⎣⎢⎢⎢11…1111111⋯⋯⋯111111⎤⎦⎥⎥⎥ blur(src, dst, ksize, anchor, borderType) 与 boxFilter(src, dst, src.type(), anchor, true, borderType) .的调用相等
|
|
ksize:滤波内核的大小 anchor:默认值(-1,-1)即像素点在内核* |
cv2.boxFilter(InputArray src,OutputArray dst,int ddepth,size ksize ,point anchor=Point(-1,-1),bool norimalize = true,int borderType = BORDER_DEFAULT) | |
其内核为
K=α⎡⎣⎢⎢⎢11…1111111⋯⋯⋯111111⎤⎦⎥⎥⎥
且
α={1ksize.width*ksize.height1when \texttt{normalize=true}otherwise
|