python学opencv|读取图像(五十六)使用cv2.GaussianBlur()函数实现图像像素高斯滤波处理

ops/2025/2/5 22:44:08/

【1】引言

前序学习了均值滤波和中值滤波,对图像的滤波处理有了基础认知,相关文章链接为:

pythonopencv|读取图像(五十四)使用cv2.blur()函数实现图像像素均值处理-CSDN博客

pythonopencv|读取图像(五十五)使用cv2.medianBlur()函数实现图像像素中值滤波处理-CSDN博客

在此基础上,我们可以进入高斯滤波的学习,此时需要使用cv2.GaussianBlur()函数。

【2】官网教程

点击下方链接,直达cv2.GaussianBlur()函数的官网教程:

OpenCV: Image Filtering

官网页面对cv2.GaussianBlur()函数的说明为:

图1   cv2.GaussianBlur()函数的官网教程

官网页面对cv2.GaussianBlur()函数的参数说明为:

void cv::GaussianBlur  (

InputArray src,                                                                    #输入图像

OutputArray dst,                                                                 #输出图像

Size ksize,                                                                          #像素核

double sigmaX,                                                                #卷积核水平方向标准差,可选参数

double sigmaY = 0,                                                          #卷积核竖直方向标准差,可选参数

int borderType = BORDER_DEFAULT,                           #边界样式,可选参数

AlgorithmHint hint = cv::ALGO_HINT_DEFAULT )         #实现修改标志,无需关注

【3】代码测试

首先是引入模块和相关图像:

python">import cv2 as cv  # 引入CV模块# 读取图片
srcm = cv.imread('srcx.png')  # 读取图像srcx.png

然后是对图像进行高斯滤波处理:

python">#滤波计算
src1 = cv.GaussianBlur(srcm,(3,3),0,0)  # 图像取平均值,像素核大小为(3,3)
src2 = cv.GaussianBlur(srcm,(5,5),0,0)  # 图像取平均值,像素核大小为(5,5)
src3 = cv.GaussianBlur(srcm,(7,7),0,0)  # 图像取平均值,像素核大小为(7,7)

之后显示图像:

python"># 显示结果
cv.imshow('srcm ', srcm)
cv.imshow('src1 ', src1)
cv.imshow('src2 ', src2)
cv.imshow('src3 ', src3)
cv.imwrite('src1g.png',src1)
cv.imwrite('src2g.png',src2)
cv.imwrite('src3g.png',src3)
# 窗口控制
cv.waitKey()  # 图像不关闭
cv.destroyAllWindows()  # 释放所有窗口

程序运行使用的相关图像为:

图2  初始图像scrx.png

图3  高斯滤波图像scr1.png

图4  高斯滤波图像scr2.png

图5  高斯滤波图像scr3.png

和调用cv2.blur()函数使用均值滤波处理,调用cv2.medianBlur()函数进行中值滤波处理一样,调用cv.GaussianBlur()函数进行高斯滤波处理后,由图2到图5可见,随着像素核的增大,图像越来越模糊。这提醒我们,控制像素核的大小,可以进一步控制图像的模糊程度。

【4】细节说明

调用cv2.medianBlur()函数进行中值滤波时,使用的像素核只需要写出边长n,但这个边长也应该是奇数,cv2.medianBlur()函数会自动根据这个边长划定一个正方形的像素核。

调用cv2.blur()函数进行均值滤波和调用cv2.GaussianBlur()函数进行高斯滤波处理时,均需要给出(nXn)大小的像素核,这个n应使用奇数。

像素核使用奇数大小会比较好,是因为奇数大小会在最中间围成一个方格,这个方格就是核心方格,滤波计算的值直接赋给这个核心方格。

图6 图像滤波技术对比

【5】总结

掌握了使用python+opencv实现调用cv2.GaussianBlur()函数进行高斯滤波处理图像的技巧。

 


http://www.ppmy.cn/ops/155991.html

相关文章

DeepSeek 的含金量还在上升

大家好啊,我是董董灿。 最近 DeepSeek 越来越火了。 网上有很多针对 DeepSeek 的推理测评,除此之外,也有很多人从技术的角度来探讨 DeepSeek 带给行业的影响。 比如今天就看到了一篇文章,探讨 DeepSeek 在使用 GPU 进行模型训练…

CNN的各种知识点(四): 非极大值抑制(Non-Maximum Suppression, NMS)

非极大值抑制(Non-Maximum Suppression, NMS) 1. 非极大值抑制(Non-Maximum Suppression, NMS)概念:算法步骤:具体例子:PyTorch实现: 总结: 1. 非极大值抑制(…

Linux环境下的Java项目部署技巧:Nginx 详解

Nginx 的启动 Nginx 启动会生成 2 个进程:主进程与守护进程 主进程:常用于提供反向代理服务。特点:占内存大守护进程:防止主进程以外关闭。特点:占内存小 Nginx 启动需要占用 80 端口: 当 Ngnix 启动失败时&#xff0…

联想拯救者R720笔记本外接显示屏方法,显示屏是2K屏27英寸

现在某品牌的13/14代(CPU是13或14开头)CPU缩肛有设计质量问题、CPU容易氧化易损坏易蓝屏等问题,现在大家买笔记本或台式电脑请不要考虑这两代CPU,或考虑AMD的CPU。 晚上23点10分前下单,第二天上午显示屏送到&#xff…

Dest1ny攻防实战:SpringBoot 脱敏属性***明文获取

今天是dest1ny攻防实战! 脱敏springboot敏感数据!! 大家多多支持,多多点赞,多多关注!! 谢谢大家,下面我们来看今天的内容! 1.前言 SpringBoot敏感信息泄露&#xff0…

【棋弈云端】网页五子棋项目测试报告

目录 一、项目背景1.1 项目简介1.2 应用技术 二、项目功能2.1 用户管理功能2.2 游戏对战功能 三、测试报告3.1 功能测试3.1.1注册功能测试3.1.2 登录功能测试3.1.3 匹配和落子测试 3.2 界面测试3.3 性能测试3.4 自动化测试3.4.1 创建驱动对象3.4.2 自动化检测注册功能3.4.3 自动…

如何构建ObjC语言编译环境?构建无比简洁的clang编译ObjC环境?Windows搭建Swift语言编译环境?

如何构建ObjC语言编译环境? 除了在线ObjC编译器,本地环境Windows/Mac/Linux均可以搭建ObjC编译环境。 Mac自然不用多说,ObjC是亲儿子。(WSL Ubuntu 22.04) Ubuntu可以安装gobjc/gnustep和gnustep-devel构建编译环境。 sudo apt-get install gobjc gnus…

PostCss

什么是 PostCss 如果把 CSS 单独拎出来看,光是样式本身,就有很多事情要处理。 既然有这么多事情要处理,何不把这些事情集中到一起统一处理呢? PostCss 就是基于这样的理念出现的。 PostCss 类似于一个编译器,可以将…