OpenCV中的5种平滑滤波操作

article/2025/8/24 9:22:52

平滑滤波是一种简单又常见的图像处理操作。平滑图像的目的有很多,但通常都是为了减少噪声和伪影。

在OpenCV中共有5种平滑滤波操作,分别是以下几种:

实验测试代码如下:

#include<iostream>
#include<opencv2/opencv.hpp>using namespace std;
using namespace cv;int main()
{Mat srcImage = cv::imread("F:/图像处理/图片一/outThee2.jpg", 0);if (srcImage.empty()){printf("图片读取失败!\n");return -1;}Mat outputImage;//简单模糊滤波器//blur(srcImage, outputImage, Size(3, 3));//方框型滤波器//boxFilter(srcImage, outputImage, -1, Size(3, 3));//中值滤波器medianBlur(srcImage, outputImage, 3);//高斯滤波器//GaussianBlur(srcImage, outputImage, Size(3, 3), 0.0, 0.0);//双边滤波器//bilateralFilter(srcImage, outputImage, 9, 10.0, 50.0);imshow("原图", srcImage);imshow("滤波处理后的图像", outputImage);waitKey(0);return 0;
}

输入的源图像

 (1) 简单模糊滤波器

void cv::blur(cv::InputArray src,   //输入图像cv::OutputArray dst,  //滤波后得到的图像cv::Size ksize,  //窗口(核)的尺寸大小cv::Point anchor = cv::Point(-1, -1),  //核与源图像的对齐方式。默认值为Point(-1,-1),表示核相等滤波器居中int borderType = cv::BORDER_DEFAULT  //边界类型
);//5种边界类型
cv::BORDER_CONSTANT    //复制指定的常量扩展边界
cv::BORDER_WRAP             //复制对边的像素扩展边界
cv::BORDER_REPLICATE      //复制边缘的像素扩展边界
cv::BORDER_REFLECT         //通过镜像复制扩展边界
cv::BORDER_REFLECT_101  //通过镜像复制扩展边界,边界像素除外
cv::BORDER_DEFAULT        //cv::BORDER_REFLECT_101的别名

滤波结果:

从结果来看,简单模糊滤波对于点状噪声的处理有一定效果,但不理想。

(2) 方框型滤波器

void cv::boxFilter(cv::InputArray src,  //输入图像cv::OutputArray dst,  //滤波得到的图像int ddepth,  //输出图像的深度,取-1表示与源图像一致cv::Size ksize,  //核的大小cv::Point anchor = cv::Point(-1, -1),  //核与源图像的对齐方式bool normalize = true,  int borderType = cv::BORDER_DEFAULT  //边界类型
);

 滤波结果:

简单模糊是方框型滤波器的一种特殊形式,从测试结果来看,它们两个的滤波效果基本是一样的。 

(3) 中值滤波器

void cv::medianBlur(cv::InputArray src,  //输入图像cv::OutputArray dst,  //滤波后得到的图像int ksize  //核大小);

滤波结果:

由于中值滤波是将每个像素替换为围绕这个像素的矩形领域内的中值像素,因此对图像中较大的异常孤立值非常敏感,所以中值滤波对于这种点状噪声的处理效果是最好的。

(4) 高斯滤波器

void cv::GaussianBlur(cv::InputArray src,  //输入图像cv::OutputArray dst,  //滤波后得到的图像cv::Size ksize,  //核尺寸的大小double sigmaX,double sigmaY,int borderType = cv::BORDER_DEFAULT);

 滤波结果:

高斯滤波虽然非常常用,但是对于这种点状噪声的处理,还是不太适用的。

(5) 双边滤波器

void cv::bilateralFilter(cv::InputArray src,  //输入图像cv::OutputArray dst,  //滤波后得到的图像int d,  double sigmaColor,double sigmaSpace,int borderType = cv::BORDER_DEFAULT);

 滤波结果:

 


http://chatgpt.dhexx.cn/article/Fyk6EVIG.shtml

相关文章

平滑滤波

平滑滤波是低频增强的空间域滤波技术。它的目的有两类&#xff1a;一类是模糊&#xff1b;另一类是消除噪音。空间域的平滑滤波一般采用简单平均法进行&#xff0c;就是求邻近像元点的平均亮度值。邻域的大小与平滑的效果直接相关&#xff0c;邻域越大平滑的效果越好&#xff0…

Matlab学习7-图像处理之线性平滑滤波

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、选择平均法滤波去噪二、领域平均法去噪三、Wiener滤波四、线性平滑滤波 前言 空域滤波增强 卷积原理 多维连续卷积 线性平滑滤波 领域平均法、选择平均法…

数字图像处理--平滑滤波

1.相关知识 今天介绍平滑滤波的一些知识&#xff01; 相关知识&#xff1a;均值模板和中值滤波 例如&#xff0c;3X3均值模板(取图像相邻区域的像素求和取平均代替中心像素&#xff0c;更高次类似) [ 1 1 1 1 1 1 1 1 1] 然后说说中值滤波&#xff0c;还是以3X3来说&…

平滑滤波笔记

叠加在有用数据上的随机噪声在很多情况下可以近似地认为是白噪声。白噪声具有一个很重要的统计特性&#xff0c;即它的统计平均值为零。因此可以求平均值的办法来消除随机误差&#xff0c;这就是所谓平滑滤波。平滑滤波有以下几种&#xff1a; #####1. 算术平均滤波法 算术平均…

matlab图像处理——平滑滤波

平滑滤波——matlab图像处理 平滑滤波的目的是消除或尽量减少噪声&#xff0c;改善图像的质量。假设加性噪声是随机独立分布&#xff0c;这样利用图像像素领域的平均或加权平均即可有效地抑制噪声干扰。从信号分析的观点来看&#xff0c;图像平滑本质上是低能滤波&#xff0c;…

图像处理(一):平滑滤波

平滑处理&#xff0c;有时也称模糊处理&#xff0c;是图像处理领域最常用的操作。平滑的目的主要是用来去除噪声。通常平滑操作是通过卷积操作&#xff08;注&#xff1a;实际上是相关操作&#xff0c;后面的叙述对这两个操作不加区分&#xff09;完成。下面介绍几种常用的平滑…

MATLAB自适应平滑滤波

% 自适应平滑滤波 clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 [filename ,pathname]… uigetfile({‘.bmp’;.jpg’;},‘选择图片’); % 选择图片路径 str [pathname filename]; % 合成路径文件名 i…

平滑滤波器总结

平滑滤波器总结 本质&#xff1a;对像素点领域的像素值施于某种算法&#xff0c;以其结果替代锚点处对应的像素值。 平滑&#xff08;模糊&#xff09;目的&#xff1a;减少噪声和伪影。 opencv一共提供了5种平滑操作。 1.均值滤波器 算法原理&#xff1a;以邻域像素点的平均…

数字图像处理:线性和非线性滤波的平滑空间滤波器(Smoothing Spatial Filters)

引言 本系列文章记录老猿自学冈萨雷斯《数字图像处理》的感悟和总结&#xff0c;不过估计更新会比较慢&#xff0c;白天要工作&#xff0c;都是晚上抽空学习&#xff0c;学习完一章再回头总结&#xff0c;想学的朋友可以自己下载英文原版&#xff08;目前到第四版&#xff09;…

空间滤波(平滑滤波)

本实验所采用的空间滤波方法是平滑滤波&#xff0c;下图是两个3*3平滑&#xff08;均值&#xff09;滤波器模板&#xff0c;对图像进行平滑处理。 平滑线性空间滤波器的输出响应是包含在滤波器模板邻域内的像素的简单平均值。平滑滤波器多用于模糊处理和降低噪声。 第一个滤波…

群晖Synology Drive同步规则中过滤指定文件夹

学习Vue的过程中发现电脑上的Synology Drive同步文件时间变得超级长&#xff0c;检查发现是项目文件夹里的 node_modules 文件夹里文件非常多导致的&#xff0c;每个项目都有上万个文件&#xff0c;但是 Synology Drive 的文件过滤器并不能添加文件夹名 解决方案 进入这个路径…

Synology Drive 使用了哪些端口?

Drive的浏览器页面使用的是 5000/5001 DSM 端口 &#xff0c;而同步使用的是 6690 端口。请您确认是否有将您的自定义端口转发到 6690 上。 DSM 服务使用的网络端口检查 TCP 端口的状态

修复群晖Synology Drive Client右键菜单缺失

1. 关闭Drive程序。 2. 进入控制面板 3. 选择用户账户 4. 选择用户账户 5. 更改用户帐户控制设置 6. 将滑块拨动到下图所示 7. 然后重启电脑。 8. 重启完毕后&#xff0c;关闭Drive程序和杀毒软件&#xff0c; 在文件资源管理器管理器地址栏中输入 %localappdata%\Synology…

群晖NAS同步阿里云盘

近期阿里云盘还是比较香的&#xff0c;不说别的&#xff0c;就“容量大、不限速”两个优点&#xff0c;已经足够比某度盘好多了。通过在群晖Docker里安装容器&#xff0c;可以让阿里云盘变成一台带webdav协议的文件服务器&#xff0c;群晖通过Cloud Sync套件实时地把文件同步到…

玩转群晖NAS套件系列二:synology Drive的安装使用保姆级教程!

本章介绍&#xff1a; 上一章节我们讲解《玩转群晖NAS套件系列一&#xff1a;cloud sync套件的安装与使用保姆级教程&#xff01;》&#xff0c;此教程堪称史上手把手的保姆教程&#xff0c;受到广大网友的一致好评&#xff0c; 今天在这里介绍synology Drive&#xff0c;一款非…

群晖Cloud Station Serve/Drive登陆失败 解决方法

群晖Cloud Station Serve/Drive登陆失败 解决方法 内网登陆正常&#xff0c;外网登陆显示“连接失败。请检查您的网络设置并再设置一次。” 出现这种问题一般是端口没有映射导致&#xff0c;登陆路由器映射Cloud Station Serve插件的端口号6690&#xff0c;测试联机&#xff…

黑群晖drive套件的使用教程

黑群晖同步套件 前段时间心血来潮&#xff0c;组建了黑群晖。这个东西是早有耳闻&#xff0c;说的是文件管理的好东西。我组建本意是想作为一个云端存储个人文件的一个东西。但是要实现这个小小的目的&#xff0c;免不了一番折腾。 1、安装黑群晖 这个黑群晖是我花了90元在水…

群晖间备份Synology Drive ShareSync、Cloud Sync对比

两个群晖间的同步&#xff0c;目前有2种方式&#xff0c;Synology Drive ShareSync 和 CloudSync 。根据群晖的定位&#xff0c;Synology Drive ShareSync主要用于双群晖间的同步&#xff0c;而 CloudSync 主要用于群晖与各大网盘之间的同步。 Synology Drive ShareSync 的同步…

[NAS] Synology (群晖) DSM同步数据到阿里云盘

简介 群晖NAS通过webDAV同步阿里云盘的一些方法会因为某些开源项目的开发者放弃维护而失效&#xff0c;这里介绍一个最新同步到阿里云盘的方法 方法 / 步骤 一: 容器安装与配置 点击“注册表”&#xff0c;搜索aliyundrive&#xff0c;找到“messense/aliyundrive-webdav”…

群晖读取旧硬盘

无需格式化 解决文件系统 不支持 通过将旧硬盘挂载成为usb设备 1、进入系统后台 1.1开启群晖ssh功能 1.2 ssh连接到后台的liux系统 通过远程软件 我这边使用的是 mobaxterm 登录到群晖后台 在新页面中输入密码 1.2 切换为root用户 输入命令 sudo -i 回车后输入登录ssh的…