opencv#31 非线性滤波——中值滤波

中值滤波原理

中值滤波原理与均值滤波相似。在滤波器的范围内,将滤波器所覆盖的图像的像素,进行排序后,选取序列中中间位置的数值作为滤波后的结果,此过程不含任何线性操作,所以称为非线性滤波,对图像中数据进行排序可以很好的移除掉某些区域中突然出现的较大值。例如在下图中3*3的区域内,即使存在着椒盐滤波255,排序后选取中位数可以有效的筛除最大值。即使有两个最大值,也不会出现远大于或远偏离于期望中的数值。所以中值滤波可以很好的滤除突然出现的较大值,也就是我们的椒盐噪声。

中值滤波步骤

Step1:滤波器内像素排序。

Step2:寻找中位数。

Step3:替换像素。

中值滤波函数

medianBlur()

由于中值滤波是一个非线性滤波,因此没有滤波模板,如果想用图像进行中值滤波,必须使用此函数。否则就需要对每一个像素进行操作,比较,排序,最后得到一个顺序选取中间的值,这个过程比线性滤波可以通过卷积来实现复杂很多。

cpp 复制代码
void cv::medianBlur(InputArray   src,
                    OutputArray  dst,
                    int          ksize
                   )

·src:待中值滤波的图像,可以是单通道,三通道和四通道,数据类型与滤波器的尺寸相关,当滤波器尺寸为3或5时,图像可以是CV_8U,CV_16U或CV_32F类型,对于较大尺寸的滤波器,数据类型只能是CV_8U。

·dst:输出图像,与输入图像src具有相同的尺寸和数据类型。

·ksize:滤波器尺寸,必须是大于1的奇数,例如:3,5,7...。

示例
cpp 复制代码
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv; //opencv的命名空间
using namespace std;


//主函数
int main()
{
	Mat img = imread("E:/opencv/opencv-4.6.0-vc14_vc15/opencv/lena3Salt.png");//读取含有椒盐噪声的彩色图像
	Mat gray = imread("E:/opencv/opencv-4.6.0-vc14_vc15/opencv/equalLena_S.png");//读取含有椒盐噪声的灰度图像
	Mat gray_g = imread("E:/opencv/opencv-4.6.0-vc14_vc15/opencv/equalLena_G.png");//读取含有高斯噪声的灰度图像

	Mat imgResult3, imgResult9, grayResult3, grayResult9, gray_gResult3, gray_gResult9;//用于存放中值滤波结果

	medianBlur(img, imgResult3, 3);
	medianBlur(gray, grayResult3, 3);
	medianBlur(gray_g, gray_gResult3, 3);

	medianBlur(img, imgResult9, 9);
	medianBlur(gray, grayResult9, 9);
	medianBlur(gray_g, gray_gResult9, 9);

	imshow("imgResult3", imgResult3);
	imshow("grayResult3", grayResult3);
	imshow("gray_gResult3", gray_gResult3);

	imshow("imgResult9", imgResult9);
	imshow("grayResult9", grayResult9);
	imshow("gray_gResult9", gray_gResult9);

	waitKey(0);//等待函数用于显示图像,按下键盘任意键后退出

	return 0;

}

运行程序后可以发现,滤波后,含有椒盐噪声的彩色图像已经去除椒盐噪声了,当尺寸扩大后,图像会模糊。灰度图像中的椒盐噪声也很好去除,尺寸较大时也产生模糊效果,对于高斯噪声,进行中值滤波后还是含有高斯噪声,中值滤波没有办法很好的处理高斯噪声,即使中值滤波尺寸扩大,还是有噪声的存在。

相关推荐
深空数字孪生1 分钟前
储能调峰新实践:智慧能源平台如何保障风电消纳与电网稳定?
大数据·人工智能·物联网
wan5555cn7 分钟前
多张图片生成视频模型技术深度解析
人工智能·笔记·深度学习·算法·音视频
格林威1 小时前
机器视觉检测的光源基础知识及光源选型
人工智能·深度学习·数码相机·yolo·计算机视觉·视觉检测
今天也要学习吖2 小时前
谷歌nano banana官方Prompt模板发布,解锁六大图像生成风格
人工智能·学习·ai·prompt·nano banana·谷歌ai
Hello123网站2 小时前
glean-企业级AI搜索和知识发现平台
人工智能·产品运营·ai工具
AKAMAI2 小时前
Queue-it 为数十亿用户增强在线体验
人工智能·云原生·云计算
索迪迈科技2 小时前
INDEMIND亮相2025科技创变者大会,以机器人空间智能技术解锁具身智能新边界
人工智能·机器人·扫地机器人·空间智能·陪伴机器人
鹅毛在路上了2 小时前
C++, ffmpeg, libavcodec-RTSP拉流,opencv实时预览
c++·opencv·ffmpeg
栒U2 小时前
一文从零部署vLLM+qwen0.5b(mac本地版,不可以实操GPU单元)
人工智能·macos·vllm
沫儿笙2 小时前
FANUC发那科焊接机器人铝材焊接节气
人工智能·机器人