imfilter的用法
来源:互联网 发布:盛睿途网络 编辑:程序博客网 时间:2024/06/16 13:24
转载自:http://blog.csdn.net/u013066730/article/details/56554332
以及http://blog.csdn.net/u010740725/article/details/51557202
功能:对任意类型数组或多维图像进行滤波。
用法:B = imfilter(A,H)
B = imfilter(A,H,option1,option2,...)
或写作g = imfilter(f, w, filtering_mode, boundary_options, size_options)
其中,f为输入图像,w为滤波掩模,g为滤波后图像。filtering_mode用于指定在滤波过程中是使用“相关”还是“卷积”。boundary_options用于处理边界充零问题,边界的大小由滤波器的大小确定。具体参数选项见下表:
选项
描述
filtering_mode
‘corr’
通过使用相关来完成,该值为默认。
‘conv’
通过使用卷积来完成
boundary_options
‘X’
输入图像的边界通过用值X(无引号)来填充扩展
其默认值为0
‘replicate’
图像大小通过复制外边界的值来扩展
‘symmetric’
图像大小通过镜像反射其边界来扩展
‘circular’
图像大小通过将图像看成是一个二维周期函数的一个周期来扩展
size_options
‘full’
输出图像的大小与被扩展图像的大小相同
‘same’
输出图像的大小与输入图像的大小相同。这可通过将滤波掩模的中心点的偏移限制到原图像中包含的点来实现,该值为默认值。
举例:
例1:
originalRGB = imread('peppers.png');
imshow(originalRGB)h = fspecial('motion', 50, 45);%创建一个滤波器
filteredRGB = imfilter(originalRGB, h);
figure, imshow(filteredRGB)
例2:
originalRGB = imread('peppers.png');
imshow(originalRGB)figure, imshow(filteredRGB)
一维相关与卷积
图1(a)显示了一维函数f和模板w。假设f的原点定为最左侧的点。为执行两个函数的相关,可移动w使其最右侧的点与f的原点重合,如图1(b)所示。需要注意的是,这两个函数之间有一些点未重叠。为处理该问题,最普遍的方法是在f中填充足够多的0(对应表1-1中边界选项boundary_options的默认值P),以保证在w通过f的整个过程中,始终存在对应的点。如图1(c)所示。
现在准备执行相关操作。相关操作结果第一个值是在图1(c)所示位置上两个函数对应位置乘积的累加和。接着将w向右移动一个位置并重复上述过程,如图1(d)所示。经过4次移动后,如图1(e)所示。以此类推,直至w全部通过f,最终得到如图1(f)所示。得到的w与f的相关如图1(g)所示。
在图1(g)所示的相关中,符号’full’是由MATLAB图像处理工具箱使用的标记,用来指示相关操作按上述方式计算时使用了经过充零后的图像。同样,工具箱还提供了另一个’same’选项,可以产生大小与f相同的相关。这种计算同样也使用经过充零后的图像,但开始位置位于与f的原点对准的模板的中线点。最后的计算时使f的最后一个点与模板的中心点对准。
为了执行卷积,将w旋转180度,使其最右侧的点与f的原点重叠,如图2(b)所示。然后重复在相关操作中使用的滑动计算过程,如图2(c)到图2(f)所示。’full’和’same’卷积结果分别如图2(g)和图2-2(h)所示。
二维相关与卷积
上述情况很容易推广到二维图像中,如图3所示。原点位于图像f(x,y)的左上角。为了执行相关计算,设置w(x,y)的最右下角点,使之与f(x,y)的原点重合,如图3(c)所示。与一维情况类似,这里我们使用了零填充。然后在所有可能的位置上移动w(x,y),使得它的至少一个像素会与原始图像f(x,y)中的某个像素重叠。这个’full’相关的结果如图3(d)所示。为得到图3(e)中所示的’same’相关,我们要求w(x,y)的所有偏移都能实现中心像素覆盖原始的f(x,y)。
对于卷积,我们将w(x,y)旋转180度,其他处理方式与相关操作相同,参见图4(a)到图4(c)。
- imfilter 的用法
- imfilter()函数的用法
- imfilter的用法
- Matlab的imfilter函数用法
- Matlab的imfilter函数用法
- Matlab的imfilter函数用法
- Matlab的imfilter函数用法
- Matlab的imfilter函数用法
- Matlab的imfilter函数用法
- Matlab的imfilter函数用法
- Matlab的imfilter函数用法
- Matlab的imfilter函数用法
- fspecial()和imfilter()用法解析
- imfilter用法以及滤波讲解
- imfilter用法以及滤波讲解
- Matlab的imfilter函数
- imfilter
- conv2,filter2,imfilter的区别
- SecureCRT设置linux终端显示颜色
- Python特殊语法:filter、map、reduce、lambda
- 全局异常捕获处理器
- Android应用开发—eventBus发布事件和事件处理的时序关系
- 【SSLGZ 2788】2017年10月24日提高组 想法的升级
- imfilter的用法
- 实验五 二叉树的定义与遍历
- Activity的四种启动模式和Task的理解
- 原串翻转
- C++中virtual相关的知识
- 面试题3:数组中重复的数字
- Python进阶之MySQL数据库在linux中中文的插入和显示问题
- angularjs实现
- 进程间的通信--(四)消息队列