opencv图像处理基础操作之高斯模糊

时间:2021-11-22 00:55:56

高斯模糊概述

高斯模糊是一种常见的图像处理技术,事实上,我们在ps中也经常用到这一功能。高斯模糊可以使图像变得更加的平滑,可以消除图像中的噪声。


高斯模糊原理

高斯模糊的原理就是将图像中的每个像素进行加权平均,其中权重是根据高斯分布计算的。因为高斯分布具有中心对称的特性,所以高斯模糊可以有效的平滑图像,并尽可能的保留图像的细节信息。


高斯模糊的操作步骤

  1. 选择一个合适的固定大小窗口
  2. 用高斯分布计算我们给定的固定大小窗口中每个像素在平均值中的权重
  3. 对于当前的像素,根据权重计算该像素在窗口中的平均值,并将该平均值作为该像素的新值
  4. 然后移动窗口并重复以上处理,最终就得到了一个被高斯模糊的图像。

例程

在python中我们可以用opencv来实现高斯模糊,需要用到的函数是:GuassianBlur,就是高斯函数的英文名称:

import cv2 as cv


def gaussian_blur():
# 读取图片
img = cv.imread("input.jpg")

# 用高斯模糊函数对图像进行高斯模糊
# 第一个参数是原始图片,第二个参数是窗口大小,第三个参数是高斯核函数的标准差
img_blur = cv.GaussianBlur(img, (5, 5), 0)

cv.imshow('source_img', img)
cv.imshow('blur_img', img_blur)

cv.waitKey(0)


if __name__ == '__main__':
print_hi('PyCharm')
gaussian_blur()

模糊结果比对:

opencv图像处理基础操作之高斯模糊

可以看出,高斯模糊效果还是很不错的。


高斯模糊应用场景

  1. 图像去噪:如果图像中存在噪声,可以使用高斯模糊来图像更加平滑,达到消除噪声的效果
  2. 边缘检测:边缘检测时用高斯模糊平滑图像,减少噪声对边缘检测的干扰
  3. 特征提取:也是通过减少噪声的方式来达到在特征提取时,减少干扰。