关于MATLAB中imfilter函数的说明

原创 2016年06月01日 16:45:58

1 imfilter函数简介

函数名称:imfilter
函数语法:g=imfilter(f,w,filtering_mode,boundary_options,size_optinos)
函数功能:对任意类型数组或多维图像进行滤波
参数介绍:f是输入图像,w为滤波模板,g为滤波结果;表1-1总结了其他参数的含义。

表1-1 imfilter函数的选项

这里写图片描述

操作说明:在执行线性空间滤波函数imfilter时,我们必须清晰的理解两个意义相近的概念。一个是相关 (corr);另一个是卷积(conv)。下面分别介绍一维函数和二维函数在模板w下的相关操作和卷积操作。

2 imfilter函数操作说明

2.1 一维相关与卷积

  图2-1(a)显示了一维函数f和模板w。假设f的原点定为最左侧的点。为执行两个函数的相关,可移动w使其最右侧的点与f的原点重合,如图2-1(b)所示。需要注意的是,这两个函数之间有一些点未重叠。为处理该问题,最普遍的方法是在f中填充足够多的0(对应表1-1中边界选项boundary_options的默认值P),以保证在w通过f的整个过程中,始终存在对应的点。如图2-1(c)所示。
  现在准备执行相关操作。相关操作结果第一个值是在图2-1(c)所示位置上两个函数对应位置乘积的累加和。接着将w向右移动一个位置并重复上述过程,如图2-1(d)所示。经过4次移动后,如图2-1(e)所示。以此类推,直至w全部通过f,最终得到如图2-1(f)所示。得到的w与f的相关如图2-1(g)所示。
  在图2-1(g)所示的相关中,符号’full’是由MATLAB图像处理工具箱使用的标记,用来指示相关操作按上述方式计算时使用了经过充零后的图像。同样,工具箱还提供了另一个’same’选项,可以产生大小与f相同的相关。这种计算同样也使用经过充零后的图像,但开始位置位于与f的原点对准的模板的中线点。最后的计算时使f的最后一个点与模板的中心点对准。

这里写图片描述

图2-1 一维相关操作说明

这里写图片描述

图2-2 一维卷积操作说明

  为了执行卷积,将w旋转180度,使其最右侧的点与f的原点重叠,如图2-2(b)所示。然后重复在相关操作中使用的滑动计算过程,如图2-2(c)到图2-2(f)所示。’full’和’same’卷积结果分别如图2-2(g)和图2-2(h)所示。

2.2 二维相关与卷积

  上述情况很容易推广到二维图像中,如图2-3所示。原点位于图像f(x,y)的左上角。为了执行相关计算,设置w(x,y)的最右下角点,使之与f(x,y)的原点重合,如图2-3(c)所示。与一维情况类似,这里我们使用了零填充。然后在所有可能的位置上移动w(x,y),使得它的至少一个像素会与原始图像f(x,y)中的某个像素重叠。这个’full’相关的结果如图2-3(d)所示。为得到图2-3(e)中所示的’same’相关,我们要求w(x,y)的所有偏移都能实现中心像素覆盖原始的f(x,y)。

这里写图片描述

图2-3 二维相关操作示例

  对于卷积,我们将w(x,y)旋转180度,其他处理方式与相关操作相同,参见图2-4(a)到图2-4(c)。
这里写图片描述

图2-4二维卷积操作示例

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

新手从零开始学,相似图像匹配SIFT算法(一)

开始学习SIFT算法已经有半个月了,总算弄懂它是怎么回事了! 1、这次项目是做相似图片搜索,项目需求大致确定后;就在百度里乱搜一通,搜图像匹配或图像识别之类的关键词,可以搜出一大堆东西,什么googl...

Matlab的imfilter函数用法

功能:对任意类型数组或多维图像进行滤波。 用法:B = imfilter(A,H)    B = imfilter(A,H,option1,option2,...)    或写作g = imfi...

【matlab函数】conv2、filter2、imfilter的区别

conv2函数1、用法 C=conv2(A,B,shape); %卷积滤波 A:输入图像,B:卷积核 假设输入图像A大小为ma x na,卷积核B大小为mb x nb,则 当sh...

Convolution Neural Network (CNN) 原理与实现

本文结合Deep learning的一个应用,Convolution Neural Network 进行一些基本应用,参考Lecun的Document 0.1进行部分拓展,与结果展示(in pytho...

SIFT算法详解

尺度不变特征变换匹配算法详解 Scale Invariant Feature Transform(SIFT) Just For Fun zdd  zddmail@gmail.com 对于初学者,从...

matlab conv2、filter2、imfilter的区别

申明,本文非笔者原创,原文转载自:http://www.ilovematlab.cn/thread-293710-1-1.html -------------------------...

图像滤波函数imfilter函数的应用及其扩展

一)认识imfilter函数 imfilter函数叫做实现线性空间滤波函数,主要功能可以实现多维数组的滤波,在图像领域就是对图像进行滤波。 滤波是一个统一的概念,在图像领域,图像的去除噪...
  • on2way
  • on2way
  • 2015-07-02 09:46
  • 2581

Matlab的imfilter函数用法

功能:对任意类型数组或多维图像进行滤波。 用法:B = imfilter(A,H)    B = imfilter(A,H,option1,option2,...)    或写作g = im...

HOG特征显示C++ OpenCV代码

参考:http://download.csdn.net/detail/u011285477/9472067 #include #include #include #include ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)