代码语言:javascript复制
import cv2
o=cv2.imread("C:/Users/xpp/Desktop/Lena.png")#原始图像
r=cv2.boxFilter(o,-1,(100,100))#方框滤波
cv2.imshow("original",o)
cv2.imshow("reault",r)
cv2.waitKey()
cv2.destroyAllWindows()
算法:方框滤波可以自由选择是否对均值滤波的结果进行归一化,即可以自由选择滤波结果是邻域像素值之和的平均值还是邻域像素值之和。
- 如果计算的是邻域像素值的均值
- 如果计算的是邻域像素值之和
K是卷积核
dst=cv2.boxFilter(src, ddepth, ksize, anchor,normalize, borderType)
- dst表示返回值,即方框滤波后得到的结果
- src表示输入图像,图像深度是CV_8U、CV_16U、CV_16S、CV_32F、CV_64F
- ddepth表示处理结果图像的图像深度,一般使用-1表示与原始图像使用相同的图像深度
- ksize表示滤波核的大小,即邻域图像的高度和宽度
- anchor表示锚点,其默认值是(-1,-1),表示当前计算均值的点位于核的中心点位置,可选参数
- normalize表示在滤波时是否进行归一化(将计算结果规范化为当前像素值范围内的值)处理,该参数是一个逻辑值,可以为真(值为1)或假(值为0)。当参数normalize=1时,表示要进行归一化处理,要用邻域像素值的和除以面积;当参数normalize=0时,表示不需要进行归一化处理,直接使用邻域像素值的和,可选参数
- borderType表示边界样式,可选参数