【Emgu CV教程】6.7、图像平滑之MedianBlur()中值滤波

2024-02-01 09:12

本文主要是介绍【Emgu CV教程】6.7、图像平滑之MedianBlur()中值滤波,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、介绍
    • 1.原理
    • 2.函数介绍
  • 二、举例
    • 1.原始素材
    • 2.代码
    • 3.运行结果


一、介绍

1.原理

图像的滤波分为线性滤波和非线性滤波,常见的线性滤波就是前面介绍的均值滤波、方框滤波、高斯滤波。常见的非线性滤波主要包括中值滤波、双边滤波,今天就先介绍中值滤波。线性滤波就是加权再求值,中值滤波则是取当前像素点及其邻域像素点,将这些像素点排序,再将位于中间位置的像素值作为当前像素点的输出值。以这个原始图像为例:
在这里插入图片描述
对66这个点做中值滤波,如果滤波核选择 3 * 3,那么取出来的值就是
在这里插入图片描述
对这9个值排序,结果是238、211、151、137、98、83、66、31、29,位于中间的是98,所以这个点的输出结果就是98。注意哈:

1、滤波核,X水平方向和Y垂直方向值相同,必须是奇数。(Emgu CV就这样规定)
2、不论从大到小排序,还是从小到大排序,98总是位于中间位置,所以结果就是它。
3、这个98不是9个点根据加权计算来的,所以不是线性滤波。
4、“中值” 的 意思是按照排序,位于中间位置的值。

2.函数介绍

官方定义如下:

public static void MedianBlur(IInputArray src, // 输入图像IOutputArray dst, // 输出图像int ksize, // 滤波核的大小,也就是选取的邻域像素的高度和宽度。
)

二、举例

1.原始素材

原始素材定义为srcMat,如下:
在这里插入图片描述
还是这个有椒盐噪声的向日葵图片。

2.代码

Emgu CV中值滤波代码如下:

int ksizeX = 13;
Mat dstMat = srcMat.Clone();
CvInvoke.MedianBlur(dstMat, dstMat, ksize);
CvInvoke.Imshow("MedianBlur image, " + dstMat.Size.ToString(), dstMat);

3.运行结果

在这里插入图片描述

代码采用了13 * 13的滤波核,椒盐噪声已经没有了,花朵和绿叶上的纹理也被平滑了,但是花朵和绿叶的边缘还是很清晰的。所以记住中值滤波的特点:消除椒盐噪声、保留边缘


原创不易,请勿抄袭。共同进步,相互学习。

这篇关于【Emgu CV教程】6.7、图像平滑之MedianBlur()中值滤波的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666794

相关文章

javacv依赖太大导致jar包也大的解决办法

《javacv依赖太大导致jar包也大的解决办法》随着项目的复杂度和依赖关系的增加,打包后的JAR包可能会变得很大,:本文主要介绍javacv依赖太大导致jar包也大的解决办法,文中通过代码介绍的... 目录前言1.检查依赖2.更改依赖3.检查副依赖总结 前言最近在写项目时,用到了Javacv里的获取视频

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

spring AMQP代码生成rabbitmq的exchange and queue教程

《springAMQP代码生成rabbitmq的exchangeandqueue教程》使用SpringAMQP代码直接创建RabbitMQexchange和queue,并确保绑定关系自动成立,简... 目录spring AMQP代码生成rabbitmq的exchange and 编程queue执行结果总结s

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4