图像处理——滤波器的比较
滤波器
- 方框滤波——boxFilter
- 均值滤波——blur
- 高斯滤波——GaussianBlur
- 中值滤波——medianBlur
线性滤波器
线性滤波器经常用于剔除输入信号中不想要的频率或者从许多频率中选择一个想要的频率。常见的有:低通、高通、带通、带阻、全通、陷波
每个信号的输出值是一些输入像素的加权和
- 方框滤波——boxFilter
- 均值滤波——blur (归一化后的方框滤波)
- 高斯滤波——GaussianBlur
非线性滤波器
- 中值滤波——medianBlur
在处理类似于椒盐噪声这种散粒噪声时,使用中值滤波有时可以达到更好的效果
优势: 在均值滤波中,由于噪声成分被放入平均计算中,所以输出受到了噪声的影响。但是在中值滤波器中,由于噪声成分很难选上,所以几乎不会受影响。
劣势: 中值滤波花费的时间是均值滤波的5倍以上。
代码演示
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;int main()
{Mat src = imread("G:/picture/cs.jpg");if (src.empty()){cout << "could not load image..." << endl;}Mat roi;//修改图像大小resize(src, roi, Size(300, 300));//遍历每个像素,用at()函数为随机选取的像素点赋一个随机值for (int i = 0; i < roi.rows; i++){for (int j = 0; j < roi.cols; j++){//当导入的时灰度图if (roi.channels() == 1){if (rand() % roi.cols == j){roi.at<uchar>(i, j) = rand() % 255; //模上255是为了将随机值限定在(0,255)内} }//当导入彩色图else if (roi.channels() == 3){if (rand() % roi.cols == j){Vec3b p;p[0] = rand() % 255; p[1] = rand() % 255;p[2] = rand() % 255;roi.at<Vec3b>(i, j) = p;}}}}Mat median,gaussian,avgblur;blur(roi, avgblur, Size(3, 3));//均值GaussianBlur(roi, gaussian,Size(3,3),0,0);//高斯medianBlur(roi, median, 3);//中值imshow("roi",roi);imshow("blur", avgblur);imshow("Gaussian", gaussian);imshow("medianBlur", median);waitKey(100000);return 0;
}
输出结果
- 椒盐噪声图(roi)
- 均值
- 高斯滤波
- 中值滤波效果图
可以看到,线性滤波器(均值、高斯)处理之后图中仍可以看到“斑点”,而中值滤波则完美的达到“磨皮”效果,由此得出在处理椒盐噪声是应选择中值滤波。
图像处理——滤波器的比较相关推荐
- 图像处理 - 滤波器 Filter
滤波器是图像处理和计算机视觉中最基础的运算,可以实现很多种不同的图像变换. 中值滤波 中值滤波(Median filter)是一种典型的非线性滤波技术,基本思想是用像素点邻域灰度值的中值来代替该像素点 ...
- 图像处理滤波器(一)——均值滤波器(Mean Filter)
描述:均值滤波器是图像处理中一种常见的滤波器,它主要应用于平滑噪声.它的原理主要是利用某像素点周边像素的平均值来打到平滑噪声的效果. 常用的均值核如下图所示: 图像滤波器操作实际上就是模板操作,对于模 ...
- 图像处理滤波器(五)——斑点滤波器(Speckle Removal Filter)
描述:斑点滤波器是本人自己翻译的,不是通俗叫法,您记住它叫Speckle Removal Filter 就可以了,它来自于Thomas R.Crimmins 的一篇文章"Geometric ...
- python和halcon_VisionPro和Halcon的详细对比
一.概括的对比 1.1 Halcon的优势 Halcon有着更加低廉的Lisence 1.并且提供更好.更强大的2D和3D的视觉软件库 2.Halcon支持的视觉图像采集设备数量是Visionpro ...
- Halcon和Visionpro的对比
Halcon和Visionpro的对比 1. 概括的对比 1.1 Halcon优势 Halcon有着更加低廉的Lisence,并且提供更好.更强大的2D和3D的视觉软件库: Halcon支持的视觉图像 ...
- Windows下编译扩展OpenCV 3.1.0 + opencv_contrib
在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib 为什么要CMake,这里我陈述自己的想法,作为一个刚使用opencv库的小白来说,有以下大概三点内容 1.由于在学 ...
- Open Source
资源来源于http://www.cnblogs.com/Leo_wl/category/246424.html RabbitMQ 安装与使用 摘要: RabbitMQ 安装与使用 前言 吃多了拉就是队 ...
- 【翻译】Paparazzi: Surface Editing by way of Multi-View Image Processing
这里写目录标题 摘要 1 INTRODUCTION 2 RELATED WORK 3 OVERVIEW 3.1 基于能量的图像过滤器 3.2 随机多视图优化 3.3 迭代图像过滤器 4 设计注意事项 ...
- Neural Style Transfer: A Review
这篇是风格转移方面的综述,文中总结了多种风格转移的方法.因为18年看过很多风格转移方面的论文,因此翻译这篇综述. Gatys等人的开创性工作.通过分离和重新组合图像内容和风格,展示了卷积神经网络(CN ...
- VisionPro和Halcon 的详细对比
Halcon 与 Visionpro的详细对比 我们在工作中经常会被人问到Halcon和Visionpro的区别是什么,我可以提供一个很全面的它们之间的区别分析,因为我拥有Visionpro相关开 ...
最新文章
- JavaScript实现跳跃游戏的贪婪方法的算法(附完整源码)
- jqMobi + Android 试手
- 190. 颠倒二进制位
- 忘记手势密码的解决办法
- Flask基础(03)--创建第一个Flask程序
- 19 | 散列表(中):如何打造一个工业级水平的散列表?
- python 系统时间24小时制_Python 日期和时间
- Spring源码解析 -- SpringWeb请求参数获取解析
- 按之字形顺序打印二叉树(C++)
- Deepin下安装搭建latex编写环境
- 建立网络安全新生态,网络态势感知至关重要
- 线程的简单理解,适用于初接触的小白,另类例子讲解,通俗易懂
- 利用BP神经网络求解非线性方程组
- SuiteCRM添加自定义字段
- html thead作用,html元素thead标签的使用方法及作用
- 【雕爷学编程】Arduino动手做(59)---RS232转TTL串口模块
- 2048(Android)
- 引力魔方的特性和玩法
- ad域下文件服务器,ad域建立文件服务器
- ETL(大数据)测试实战篇(二)
热门文章
- 一、T100 质量管理基本资料设定
- Android 监听双卡信号强度(更新到android10
- 标记肽Suc-GGF-pNA,68982-90-1
- 研发轿车、开放一键加电以及跳过L3,蔚来是如何思考的? | 2019上海车展...
- 解决Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for
- 一个32岁程序员的倔强——十年程序人生
- QuantLib 金融计算——高级话题之模拟跳扩散过程
- 鸿蒙系统能不能4g变5g,鸿蒙5G基站,抢购的4G苹果还能转5G吗?运营商这么说
- case语句 oracle,Oracle的Case语句
- OCSVM: A toy example for beginner (2)