没有合适的资源?快使用搜索试试~ 我知道了~
【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波 - 【浅墨的游戏编程Blog】毛星云(浅墨)的专栏
需积分: 0 0 下载量 99 浏览量
2022-08-03
20:13:35
上传
评论
收藏 11.84MB PDF 举报
温馨提示
试读
26页
摘要视图订阅标签: 图像处理计算机视觉源代码分类:目录(?【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波91328人阅读评论(110
资源详情
资源评论
资源推荐
2018/1/26 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波 - 【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 - CSDN博客
http://blog.csdn.net/poem_qianmo/article/details/22745559 1/37
目录视图 摘要视图 订阅
标签: 图像处理 opencv 计算机视觉 c++ 源代码
分类:
目录(?) [+]
【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
2014-04-01 21:18 91328人阅读 评论(110) 收藏 举报
本系列文章由@浅墨_毛星云 出品,转载请注明出处。
文章链接: http://blog.csdn.net/poem_qianmo/article/details/22745559
作者:毛星云(浅墨) 邮箱: happylifemxy@163.com
写作当前博文时配套使用的OpenCV版本: 2.4.8
本篇文章中,我们一起仔细探讨了OpenCV图像处理技术中比较热门的图像滤波操作。图像滤波系列
文章浅墨准备花两次更新的时间来讲,此为上篇,为大家剖析了“方框滤波“,”均值滤波“和”高
斯滤波“三种常见线性邻域滤波操作。而作为非线性滤波的“中值滤波”和“双边滤波”,留待我们
下次剖析。
先上一张精彩截图:
浅墨其实很希望把这篇文章写得精简和简明扼要,发现越深入写进去,需要讲的周边内容越多,于是
文章越写越长,最后在word中字数统计突破了一万。。。。。。。
原创: 转载:
译文: 评论:
【博客转到知乎专栏】
后续新博客会首发于个人知乎专栏
https://zhuanlan.zhihu.com/game-progr
amming
在CSDN写博已近六年,但CSDN改版后不太
习惯。用了六年的黑色博客皮肤改版后没有
了,且新发博客的动态不再明显。自己暂时
又不想自己折腾搭独立博客。
所以后续文章的首发,会在知乎专栏。CSD
N博客这里仅适度将知乎专栏中首发的文章
定期搬运,不再为主。一声叹息。
——浅墨 于 2018年1月1日
个人资料
浅墨_毛星云
关注
发私信
访问:
积分:
等级:
排名:
【浅墨的第二本著作】
《OpenCV3编程入门》
从GitHub下载源码| 从百度云下载源码 |简介
与勘误博文
当当|京东|亚马逊| 互动| 天猫
PS:本书版权已经成功输出到台湾
【浅墨的游戏编程Blog】毛星云(浅墨)的专栏
阅读,思考,沉淀。
博客 学院 下载 GitChat 论坛
写博客
发Chat 登录 注册
【OpenCV】(18)
6135072次
40396
第107名
142篇 26篇
8篇 9427条
2018/1/26 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波 - 【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 - CSDN博客
http://blog.csdn.net/poem_qianmo/article/details/22745559 2/37
因为文章很长,如果详细啃的话,或许会消化不良。在这里给大家一个指引,如果是单单想要掌握这
篇文章中讲解的OpenCV线性滤波相关的三个函数:boxFilter,blur和GaussianBlur的使用方法的
话,直接看第三部分“浅出”和第四部分“实例”就行。
在以后写的OpenCV系列文章中,浅墨暂且准备将每篇博文中知识点都分成原理、深入、浅出和实例
四大部分来讲解,
第一部分为和图像处理中线性滤波相关的理论,第二部分“深入”部分主要深入OpenCV内部,带领
大家领略OpenCV的开源魅力,进行OpenCV相关源码的剖析,做到对OpenCV理解深刻,做一个高
端大气的OpenCV使用者。 第三部分“浅出”主要教会大家如何快速上手当前文章中介绍的相关
OpenCV API函数。而在第四部分,浅墨会为大家准备一个和本篇文章相关的详细注释的综合实例程
序。
这样的话呢,文章既不失深度,也不失快速入门的良方。希望浅墨按这样的新思路写出来的文章,无
论是新手还是高手,看了都能有所收获。
给出本篇万字文章的结构脉络:
一、理论——相关图像处理概念介绍
二、深入——OpenCV源码讲解
三、浅出——API函数讲解
四、实例——详细注释的博文配套程序
OK,我们开始吧。
一、理论与概念讲解
<1>关于平滑处理
“平滑处理“(smoothing)也称“模糊处理”(bluring),是一项简单且使用频率很高的图像处
理方法。平滑处理的用途有很多,最常见的是用来减少图像上的噪点或者失真。在涉及到降低图像分
辨率时,平滑处理是非常好用的方法。
<2>图像滤波与滤波器
【关于浅墨】
■ 毛星云,网络ID“浅墨,90后,热爱游戏
开发、游戏引擎、计算机图形、图像处理等
技术,就职于腾讯互娱。
■ 微软最有价值专家
■ 著作《Windows游戏编程之从零开始》、
《OpenCV3编程入门》
■ 也常活跃于知乎等网络社区
■ 本科毕业于南京航空航天大学中国乌克兰
航天联合培养班,获乌克兰国立航空航天大
学与南京航空航天大学双学位
■ 硕士就读于南京航空航天大学航天学院(2
013级硕士研究生),已于2016年三月毕业
■ 邮箱: happylifemxy#163.com(#换成@)
PS:平时精力有限,大家的邮件不一定都能回
复,请见谅。
【浅墨的第一本著作】
《逐梦旅程:Windows游戏编程之从零开
始》
彩版样章PDF免费下载| 配套源代码下载
书本维护页面|当当网|京东商城|亚马逊
【浅墨的微博】
微博
浅墨_毛星云 广东
加关注
今天星期天。 2018年的第一篇
专栏文章,关于实时渲染管线中
各种主流的瓶颈定位方法与优化
策略。 《【《Real-Time Rende
ring 3rd》 提炼总结】(十二) 渲
染管线优化方法论:从瓶颈定位
到优化策略》 http://t.cn/RQcOyl
博客专栏
【图形学与渲染】
文章:12篇
阅读:216681
【Unity Shader编程】
文章:16篇
阅读:470698
【OpenCV】入门教程
文章:18篇
文章搜索
2018/1/26 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波 - 【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 - CSDN博客
http://blog.csdn.net/poem_qianmo/article/details/22745559 3/37
首先我们看一下图像滤波的概念。图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声
进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的
有效性和可靠性。
消除图像中的噪声成分叫作图像的平滑化或滤波操作。信号或图像的能量大部分集中在幅度谱的低频
和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没。因此一个能降低高频成分幅度
的滤波器就能够减弱噪声的影响。
图像滤波的目的有两个:一是抽出对象的特征作为图像识别的特征模式;另一个是为适应图像处理的要
求,消除图像数字化时所混入的噪声。
而对滤波处理的要求也有两条:一是不能损坏图像的轮廓及边缘等重要信息;二是使图像清晰视觉效果
好。
平滑滤波是低频增强的空间域滤波技术。它的目的有两类:一类是模糊;另一类是消除噪音。(各
种“两",:))
空间域的平滑滤波一般采用简单平均法进行,就是求邻近像元点的平均亮度值。邻域的大小与平滑的
效果直接相关,邻域越大平滑的效果越好,但邻域过大,平滑会使边缘信息损失的越大,从而使输出
的图像变得模糊,因此需合理选择邻域的大小。
关于滤波器,一种形象的比喻法是:我们可以把滤波器想象成一个包含加权系数的窗口,当使用这个
滤波器平滑处理图像时,就把这个窗口放到图像之上,透过这个窗口来看我们得到的图像。
滤波器的种类有很多, 在新版本的OpenCV中,提供了如下五种常用的图像平滑处理操作方法,且
他们分别被封装在单独的函数中,使用起来非常方便:
方框滤波——boxblur函数
均值滤波(邻域平均滤波)——blur函数
高斯滤波——GaussianBlur函数
中值滤波——medianBlur函数
双边滤波——bilateralFilter函数
今天我们要讲解的是作为线性滤波的方框滤波,均值滤波和高斯滤波。两种非线性滤波操作——中
值滤波和双边滤波,我们留待下次讲解。
<3>对线性滤波器的简介
线性滤波器:线性滤波器经常用于剔除输入信号中不想要的频率或者从许多频率中选择一个想要的频
率。
几种常见的线性滤波器:
允许低频率通过的低通滤波器。
阅读:2101748
【Visual C++】游戏开发
文章:57篇
阅读:2198580
文章分类
【工作规划】
【DirectX】
【IT前沿】
【Visual C++】
【技术人生】
【实用技术】
【Web前端】
【HTML5】
【Android】
【UI】
【博弈】
【Visual C++】游戏开发
【C++】
【LUA】脚本语言
【总有一天你将破蛹而出】
【单片机】
【俄语】
【《代码大全2》读书笔记】
【Visual C++】游戏开发 【游戏引擎】
【OpenCV】
【Unity3D】
【Unity3D】【Shader】
【读书笔记】
【计算机图形学】
文章存档
2018年01月
2017年12月
2017年11月
2017年10月
2017年09月
展开
阅读排行
【OpenCV入门教程之一】 安…
【OpenCV入门教程之三】 图…
【Visual C++】游戏开发笔记…
【OpenCV入门教程之二】 一…
【OpenCV入门教程之九】 非…
【OpenCV入门教程之四】 R…
【Visual C++】游戏开发笔记…
【OpenCV入门教程之十】 形…
【OpenCV入门教程之五】 分…
【OpenCV入门教程之十二】…
(2)
(33)
(8)
(39)
(17)
(2)
(2)
(1)
(2)
(1)
(2)
(56)
(24)
(1)
(9)
(2)
(2)
(1)
(1)
(19)
(10)
(13)
(9)
(11)
(1)
(1)
(1)
(1)
(1)
(526206)
(226358)
(203653)
(128965)
(123138)
(118929)
(100690)
(97748)
(96842)
(94734)
opencv车牌识别
2018/1/26 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波 - 【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 - CSDN博客
http://blog.csdn.net/poem_qianmo/article/details/22745559 4/37
允许高频率通过的高通滤波器。
允许一定范围频率通过的带通滤波器。
阻止一定范围频率通过并且允许其它频率通过的带阻滤波器。
允许所有频率通过、仅仅改变相位关系的全通滤波器。
阻止一个狭窄频率范围通过的特殊带阻滤波器,陷波滤波器(Band-stop filter)。
<4>关于滤波和模糊
关于滤波和模糊,大家往往在初次接触的时候会弄混淆,“一会儿说滤波,一会儿又说模糊,什么玩
意儿啊”。
没关系,在这里,我们就来辨别一下,为大家扫清障碍。
我们上文已经提到过,滤波是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措
施。
为了方便说明,就拿我们经常用的高斯滤波来作例子吧。我们知道,滤波可分低通滤波和高通滤波两
种。而高斯滤波是指用高斯函数作为滤波函数的滤波操作,至于是不是模糊,要看是高斯低通还是高
斯高通,低通就是模糊,高通就是锐化。
其实说白了是很简单的,对吧:
高斯滤波是指用高斯函数作为滤波函数的滤波操作。
高斯模糊就是高斯低通滤波。
<5>邻域算子与线性邻域滤波
邻域算子(局部算子)是利用给定像素周围的像素值的决定此像素的最终输出值的一种算子。而线性
邻域滤波是一种常用的邻域算子,像素的输出值取决于输入像素的加权和,具体过程如下图。
邻域算子除了用于局部色调调整以外,还可以用于图像滤波,实现图像的平滑和锐化,图像边缘增强
或者图像噪声的去除。本篇文章,我们介绍的主角是线性邻域滤波算子,即用不同的权重去结合一个
小邻域内的像素,来得到应有的处理效果。
评论排行
【Visual C++】游戏开发笔记…
【OpenCV入门教程之一】 安…
【Visual C++】游戏开发笔记…
【浅墨著作】《逐梦旅程:Wi…
【OpenCV入门教程之三】 图…
【浅墨著作】《OpenCV3编…
【Visual C++】游戏开发笔记…
【OpenCV入门教程之四】 R…
【Visual C++】游戏开发笔记…
【OpenCV入门教程之六】 创…
网络机顶盒排名
最新评论
【OpenCV入门教程之四】 ROI区域图像…
现在不努力就完了 : @qq_39681657:+1+1
头痛
【《Real-Time Rendering 3rd》 提炼总…
Christ_Sun : 大赞一下!
【浅墨著作】《OpenCV3编程入门》内…
qq_38080117 : @zhmxy555:博主也喜欢
单机游戏吗?看了你的《windows游戏编程
之从零开始》觉得你肯定很喜...
【Unity Shader编程】之十五 屏幕高斯模…
Hugh_2013 : 学习了!正好用得到。
【OpenCV入门教程之二】 一览众山小:…
现在不努力就完了 : 很幸运遇见。
【《Real-Time Rendering 3rd》 提炼总…
改变自己chenyu : 大神,好厉害
【OpenCV入门教程之十七】OpenCV重…
flow_specter : 请问如果想要实现图像4阶
多项式变换应该怎么做呢?
【OpenCV入门教程之一】 安装OpenCV…
文杉石 : 最后一步需要把图片和main.cpp
放在同一目录下。
【OpenCV入门教程之三】 图像的载入,…
yehyun : @yehyun:知道了,将链接库中ope
ncv_worldxxx.lib和opencv_worldx...
【OpenCV入门教程之三】 图像的载入,…
yehyun : #include "stdafx.h"
#include <iostream...
【浅墨的驻点】
<1> 浅墨的GitHub主页
<2> 浅墨的微博主页
<3> 浅墨的知乎主页
<4>在线LaTex公式编辑器
(979)
(678)
(312)
(249)
(214)
(175)
(162)
(152)
(147)
(145)
opencv车牌识别
2018/1/26 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波 - 【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 - CSDN博客
http://blog.csdn.net/poem_qianmo/article/details/22745559 5/37
图注:邻域滤波(卷积):左边图像与中间图像的卷积产生右边图像。目标图像中蓝色标记的像素是
利用原图像中红色标记的像素计算得到的。
线性滤波处理的输出像素值 是输入像素值 的加权和 :
其中的加权和为 ,我们称其为“核”,滤波器的加权系数,即滤波器的“滤波系数”。
上面的式子可以简单写作:
其中f表示输入像素值,h表示加权系数“核“,g表示输出像素值
在新版本的OpenCV中,提供了如下三种常用的线性滤波操作,他们分别被封装在单独的函数中,使
用起来非常方便:
方框滤波——boxblur函数
均值滤波——blur函数
高斯滤波——GaussianBlur函数
下面我们来对他们进行一一介绍。
<6>方框滤波(box Filter)
方框滤波(box Filter)被封装在一个名为boxblur的函数中,即boxblur函数的作用是使用方框滤波
器(box filter)来模糊一张图片,从src输入,从dst输出。
函数原型如下:
参数详解:
第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可。该函数对
通道是独立处理的,且可以处理任意通道数的图片,但需要注意,待处理的图片深度应该为
CV_8U, CV_16U, CV_16S, CV_32F 以及 CV_64F之一。
第二个参数,OutputArray类型的dst,即目标图像,需要和源图片有一样的尺寸和类型。
第三个参数,int类型的ddepth,输出图像的深度,-1代表使用原图深度,即src.depth()。
[cpp]
01. C++: void boxFilter(InputArray src,OutputArray dst, int ddepth, Size ksize, Point anchor=Point(-1,-1), boolnormalize=
opencv车牌识别
剩余25页未读,继续阅读
空城大大叔
- 粉丝: 20
- 资源: 313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0