关于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二维卷积操作示例

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

imfilter使用方法

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

imfilter、conv2、imfilter2用法及区别

imfilter实现的是线性空间滤波; conv2是计算两个矩阵的二维卷积1、MATLAB中提供了卷积运算的函数命令conv2,其语法格式为: C = conv2(A,B) C = conv2(A,B...

imfilter用法以及滤波讲解

【matlab函数描述】 功能:对任意类型数组或多维图像进行滤波。 用法:B = imfilter(A,H)    B = imfilter(A,H,option1,option2,…)    或写...

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

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

Matlab的imfilter函数用法

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

matlab filter2和imfilter有什么区别

imfilter 可进行多维图像(RGB等)进行空间滤波,且可选参数较多 filter2 只能对二维图像(灰度图)进行空间滤波 两个函数结果类型不一样,只需要在I1=filter2(h,I)后面加...

Matlab的imfilter函数用法

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

针对MATLAB(imfilter)翻译C语言(opencv)遇到的问题

#include #include #include #include   //Function Matlab filter CvMat* imfilter2(CvMat* src_imag...

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

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

【matlab知识补充】conv2、filter2、imfilter函数原理

原文地址:http://www.ilovematlab.cn/thread-293710-1-1.html -------------------------------------conv2函数--...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于MATLAB中imfilter函数的说明
举报原因:
原因补充:

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