【拜小白opencv】31-平滑处理4非线性滤波之——中值滤波
来源:互联网 发布:淘宝卖家子账号 编辑:程序博客网 时间:2024/06/16 03:35
常言道“温故而知新”,写此文章就是对自己目前学习内容的小小的总结与记录。
本文力求用最简洁的语言,详细的代码将此部分内容讲解清楚,但由于博主同样是刚刚接触OpenCV,或许表达上有些瑕疵,还望读者能够指教探讨,大家共同进步。
博主机器配置为:VS2013+opencv2.4.13+Win-64bit。
若本文能给读者带来一点点启示与帮助,我就很开心了。
=========================分割线========================
1-中值滤波
- 中值滤波法是一种非线性平滑技术,将图像的每个像素用邻域 (以当前像素为中心的正方形区域)像素的中值代替 ,常用于消除图像中的椒盐噪声。
- 与低通滤波不同的是,中值滤波对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊,但它会洗去均匀介质区域中的纹理。这些优良特性是线性滤波方法所不具有的。
中值滤波能减弱或消除傅里叶空间的高频分量,同时也影响低频分量。中值滤波去除噪声的效果依赖于两个要素:邻域的空间范围和中值计算中涉及的像素数。一般说来,小于滤波器面积一半的亮或暗的物体基本上会被滤除,而较大的物体几乎会原封不动地保存下来,因此中值滤波器的空间尺寸必须根据现有的问题来进行调整。
=========================分割线======================
2-medianBlur()函数——中值滤波
OpenCV将均值滤波封装在medianBlur()函数中,作用是输入一副图像对其进行中值滤波。下面来看下medianBlur()函数的定义:
void medianBlur( InputArray src, OutputArray dst, int ksize );
参数说明:
- 参数1:输入要处理的图像。
- 参数2:得到处理后的输出图像,与输入图像有一样的尺寸和类型。
- 参数3:int类型的ksize,表示内核大小,必须设置为奇数。
==================分割线================
3-代码演示
/*中值滤波*/#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp>#include <iostream> using namespace std;using namespace cv;int main(){//------------【1】读取源图像并检查图像是否读取成功------------ Mat srcImage = imread("D:\\OutPutResult\\ImageTest\\boat1.jpg");if (!srcImage.data){cout << "读取图片错误,请重新输入正确路径!\n";system("pause");return -1;}imshow("【源图像】", srcImage);//------------【2】对图像进行中值滤波处理------------ Mat dstImage;medianBlur(srcImage, dstImage, 5);//中值滤波imshow("【中值滤波】", dstImage);waitKey(0);return 0;}
========================分割线================
4-显示结果
=====================分割线===================
5-程序说明
可以发现,中值滤波可以很好保留物体的边缘信息。
=====================END===================
阅读全文
0 0
- 【拜小白opencv】31-平滑处理4非线性滤波之——中值滤波
- 【拜小白opencv】32-平滑处理5非线性滤波之——双边滤波
- 【拜小白opencv】28-平滑处理1线性滤波之——盒式滤波(方框滤波)
- OpenCV之九 非线性滤波专场:中值滤波、双边滤波
- 【拜小白opencv】29-平滑处理2线性滤波之——均值滤波
- 【拜小白opencv】30-平滑处理3线性滤波之——高斯滤波
- OpenCV—中值滤波
- 【拜小白opencv】34-图像平滑处理,6种滤波总结的综合示例【盒式滤波、均值滤波、高斯滤波、中值滤波、双边滤波、导向滤波】
- Opencv中的非线性滤波器概念介绍——中值滤波、双边滤波
- 数字图像处理——图像平滑(中值滤波)
- Opencv学习:非线性滤波:中值滤波、双边滤波
- 【OpenCV入门教程之九】 非线性滤波专场:中值滤波、双边滤波
- 【OpenCV入门教程之九】 非线性滤波专场:中值滤波、双边滤波
- 【OpenCV入门教程之九】 非线性滤波专场:中值滤波、双边滤波
- 【OpenCV入门教程之九】 非线性滤波专场:中值滤波、双边滤波
- 【OpenCV入门教程之九】 非线性滤波专场:中值滤波、双边滤波
- 【OpenCV入门教程之九】 非线性滤波专场:中值滤波、双边滤波
- 【OpenCV入门教程之九】 非线性滤波专场:中值滤波、双边滤波
- Nginx服务器搭建和基本配置详解_nginx
- 深度学习利器:TensorFlow与NLP模型
- Java语言组成基础——需要格外注意的问题(二)
- Mac配置AAPT环境变量
- hive开发遇到的一些坑
- 【拜小白opencv】31-平滑处理4非线性滤波之——中值滤波
- 昨天的一些代码笔记
- ssh链接Ubuntu出现REMOTE HOST IDENTIFICATION HAS CHANGED的问题
- Java 之中文转拼音
- Maximum Product of Word Lengths 问题及解法
- Redis数据库安装(Linux)
- oracle时间获取记录
- Ubuntu 装机必备设置与软件安装
- MyBatis中resultType和resultMap的区别