在OpenCV里实现均值平滑3

有了前面的积分图像之后,就可以采用下面的公式来快速地计算均值平滑:

这个公式就是前面计算面积的公式,因此可以把均值平滑的算法写成这样:

#python 3.7.4,opencv4.1
#蔡军生 https://blog.csdn.net/caimouse/article/details/51749579
#
import cv2
import numpy as np

#计算积分图像Integral(i,j) = Integral(i,j-1) + ColumnSum(j);
def integral(img,h,w):
    integ_graph = np.zeros((h+1,w+1),dtype = np.int32)
    for x in range(h):
        sum_clo = 0
        for y in range(w):
            sum_clo +=  img[x][y]
            #print('y={},{},sum={}'.format(y,img[x][y],sum_clo))
            integ_graph[x+1][y+1] = integ_graph[x][y+1] + sum_clo;
    return integ_graph

#均值平滑
def MeanBlur(image,WinSize):
    wH = (WinSize[0]-1)//2
    wW = (WinSize[1]-1)//2

    imagepad = cv2.copyMakeBorder(image,wH,wH,wW,wW, borderType = cv2.BORDER_D

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付9.90元
点击重新获取
扫码支付

支付成功即可阅读