OpenCV库学习之cv2.GaussianBlur函数

OpenCV库学习之cv2.GaussianBlur函数

一、简介

cv2.GaussianBlur 是 OpenCV 图像处理库中的一个函数,它用于对图像进行高斯模糊处理。高斯模糊是一种常用的图像模糊技术,通过高斯函数对图像进行卷积,实现图像的平滑效果,常用于去除图像噪声或实现图像的柔化。

二、语法和参数

函数的语法如下:

python 复制代码
dst = cv2.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]])
  • src: 输入图像,可以是单通道灰度图像或多通道彩色图像。
  • ksize: 高斯核的大小,是一个 (width, height) 的元组,必须是正数和奇数。
  • sigmaX: X 轴方向上的高斯核的标准差。
  • dst: 输出图像,如果未指定,将创建与 src 相同大小和类型的图像。
  • sigmaY: Y 轴方向上的高斯核的标准差,如果为0,则 sigmaY 将与 sigmaX 相同。
  • borderType: 边界处理方式,默认为 cv2.BORDER_DEFAULT

三、实例

3.1 应用高斯模糊到彩色图像上

代码:

python 复制代码
import cv2

# 读取彩色图像
image = cv2.imread('example.jpg')

# 应用高斯模糊,核大小为5x5,标准差为0
blurred_image = cv2.GaussianBlur(image, (5, 5), 0)

# 显示原图和模糊后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Blurred Image', blurred_image)

# 等待按键后关闭所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

运行上述代码后,将显示原图和高斯模糊后的图像。请注意,实际输出将取决于 example.jpg 图像的内容。

3.2 应用高斯模糊到灰度图像上

代码:

python 复制代码
import cv2

# 读取灰度图像
image = cv2.imread('example.jpg', cv2.IMREAD_GRAYSCALE)

# 应用高斯模糊,核大小为5x5,标准差为1
blurred_image = cv2.GaussianBlur(image, (5, 5), 1)

# 显示原图和模糊后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Blurred Image', blurred_image)

# 等待按键后关闭所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

运行上述代码后,将显示灰度原图和高斯模糊后的图像。请注意,实际输出将取决于 example.jpg 图像的内容。

四、注意事项

  • 确保 ksize 的宽度和高度都是正奇数,否则函数将抛出错误。
  • sigmaXsigmaY 的值通常设置为正数,如果设置为0,它们将由 ksize 决定。
  • 如果不指定 dst 参数,函数将自动分配内存来存储输出图像。
  • 边界处理方式 borderType 可以影响图像边缘的处理,常用的选项包括 cv2.BORDER_DEFAULTcv2.BORDER_CONSTANT 等。
  • 高斯模糊可以有效地减少图像噪声,但过度模糊可能会丢失重要细节。
相关推荐
_Kayo_1 小时前
node.js 学习笔记3 HTTP
笔记·学习
CCCC13101634 小时前
嵌入式学习(day 28)线程
jvm·学习
星星火柴9365 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
小狗爱吃黄桃罐头5 小时前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
艾莉丝努力练剑6 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
武昌库里写JAVA7 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习
杜子不疼.7 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
小幽余生不加糖7 小时前
电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
人工智能·笔记·学习·音视频
..过云雨8 小时前
01.【数据结构-C语言】数据结构概念&算法效率(时间复杂度和空间复杂度)
c语言·数据结构·笔记·学习
myzzb8 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa