高斯模糊的部分代码:

#确保数值范围在0-255之间
def clamp(pv):
    if pv > 255:
        return 255
    if pv < 0:
        return 0
    else:
        return pv

#高斯噪声
def gaussian_nosize(image):
    h,w,c = image.shape
    for row in range(h):
        for col in range(w):
            s = np.random.normal(0,20,3)
            b = image[row,col,0]
            g = image[row,col,1]
            r = image[row,col,2]
            image[row,col,0] = clamp(b + s[0])
            image[row,col,1] = clamp(g + s[1])
            image[row,col,2] = clamp(g + s[2])
    cv.imshow("gaussian_demo",image)

高斯模糊:

#高斯模糊(基于权重)
#cv.GaussianBlur(src,(0,0),15),若不为(0,0),则优先从(x,x)开始计算,否则则从后面的参数值开始运算
dst = cv.GaussianBlur(src,(0,0),15)
cv.imshow("GaussianBlur_demo",dst)

高斯双边:

边缘保留滤波(EPF)的实现,高斯双边或均值迁移

Python的Opencv初学部分知识点(四)

#高斯双边滤波
def bi_demo(image):
    dst = cv.bilateralFilter(image,0,100,15)
    cv.imshow("bi_demo",dst)
#均值迁移
def shift_demo(image):
    dst = cv.pyrMeanShiftFiltering(image,10,50)
    cv.imshow("shift_demo",dst)
Python的Opencv初学部分知识点(四)

相关文章: