OpenCV笔记(2)

一、高斯平滑(模糊)

def gaussian_blur(image):
    # 设置ksize来确定模糊效果
    img = cv.GaussianBlur(image, (5, 5), 0)
    cv.imshow('img', img)

    # 不通过ksize来设置高斯核大小,通过设置高斯分布公式中的sigma
    img2 = cv.GaussianBlur(image, (0, 0), 1)
    cv.imshow('img2', img2)

在高斯平滑中,高斯核中所有数字加起来应该为1,这样才能保证图片只发生平滑效果,而不影响亮度等其他效果。

例如3x3的高斯核如下所示:

二、边缘保留滤波(EPF)

高斯双边模糊(美颜):

def bi_blur(image):
    img = cv.bilateralFilter(image, 0, 100, 5)
    cv.imshow('img', img)

从效果可以看出,边缘保留的还不错,而非边缘进行了模糊。双边模糊的效率比较低,特别是sigmaSpace比较大的时候。

cv.bilateralFilter()函数的参数:

src:原图像

d:过滤过程中每个像素领域的直径范围,若非正数,则从sigmaSpace计算

sigmaColor:值越大,表示像素领域内有多宽的颜色(颜色范围)会被混在一起

sigmaSpace:如果值较大,表示颜色相近的较远像素(空间范围)将互相影响,从而使更大区域足够相似的颜色获取相同的颜色。

猜你喜欢

转载自www.cnblogs.com/leokale-zz/p/11346993.html