conv2、filter2、imfilter比较

2023-12-07 03:38
文章标签 比较 conv2 filter2 imfilter

本文主要是介绍conv2、filter2、imfilter比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


http://www.ilovematlab.cn/thread-293710-1-1.html
————————————- conv2函数 —————————————-
1、用法
  1. C=conv2(A,B,shape);        %卷积滤波

复制代码


A:输入图像,B:卷积核

假设输入图像A大小为ma x na,卷积核B大小为mb x nb,则

当shape=full时,返回全部二维卷积结果,即返回C的大小为(ma+mb-1)x(na+nb-1)

shape=same时,返回与A同样大小的卷积中心部分

shape=valid时,不考虑边界补零,即只要有边界补出的零参与运算的都舍去,返回C的大小为(ma-mb+1)x(na-nb+1)





2、实现步骤

假设输入图像A大小为ma x na,卷积核大小为mb x nb,则MATLAB的conv2函数实现流程如下:

a、对输入图像补零,第一行之前和最后一行之后都补mb-1行,第一列之前和最后一列之后都补nb-1列(注意conv2不支持其他的边界补充选项,函数内部对输入总是补零)。

b、关于卷积核的中心,旋转卷积核180度。

c、滑动卷积核,将卷积核的中心位于图像矩阵的每一个元素。

d、将旋转后的卷积核乘以对应的矩阵元素再求和。



3、实现过程展示

假设有图像A=[4 3 1 2;0 1 1 3;5 2 0 0],卷积核B=[1 2 3;0 -1 2;1 1 0]

a、首先是按照上面的步骤进行补零,如下图外圈红色的为补出的零


         


b、将卷积核旋转180度
 
c、将旋转后的核在A上进行滑动,然后对应位置相乘,最后相加,下面分别是shape=full,same,valid时取输出图像大小的情况,位置1表示输出图像的值从当前核的计算值开始(对应输出图像左上角),位置2表示到该位置结束(对应输出图像右下) 
     


————————————- filter2函数 —————————————-
1、用法
  1. B = filter2(h,A,shape) ;        %相关(correlation)滤波

复制代码


A:输入图像,h:相关核

假设输入图像A大小为ma x na,相关核h大小为mb x nb,则

当shape=full时,返回全部二维卷积结果,即返回B的大小为(ma+mb-1)x(na+nb-1)

shape=same时,返回与A同样大小的卷积中心部分

shape=valid时,不考虑边界补零,即只要有边界补出的零参与运算的都舍去,返回B的大小为(ma-mb+1)x(na-nb+1)



2、实现步骤
假设输入图像A大小为ma x na,相关核h大小为mb x nb,MATLAB的filter2的实现流程如下 :
a、对输入图像补零,第一行之前和最后一行之后都补mb-1行,第一列之前和最后一列之后都补nb-1列(注意filter2不支持其他的边界补充选项,函数内部对输入总是补零)。
b、滑动相关核,将相关核的中心位于图像矩阵的每一个元素。
c、将相关核乘以对应的矩阵元素再求和
注意filter2不对核进行180°旋转,直接对应相乘再相加,这一点与filter2不同,下面有两者计算结果对比可看出这一点。

3、conv2(卷积滤波)和filter2(相关滤波)的结果比较
A=[ 4  3 1 2; 0 1 1 3; 5 2 0 0],卷积核 B=[ 1  2 3; 0  -1 2; 1 1 0]
                              
conv2,shape=full                                                                filter 2,shape=full



————————————- imfilter —————————————-
1、用法
  1. B=imfilter(A,H,option1,option2,option3);

复制代码


A:输入图像,H:滤波核

option1:边界选项,可选的有:补充固定的值X(默认都补零),symmetric,replicate,circular

option2:输出图像大小选项,可选的有same(默认),full

option3:决定采用与filter2相同的相关滤波还是与conv2相同的卷积滤波







————————————- 最后总结 —————————————-
1、  filter2、conv2将输入转换为double类型,输出也是double的,输入总是补零(zero padded), 不支持其他的边界补充选项。
2、  imfilter:不将输入转换为double,输出只与输入同类型,有灵活的边界补充选项

这篇关于conv2、filter2、imfilter比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/464369

相关文章

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

关键字synchronized、volatile的比较

关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,而synchronized可以修饰方法,以及代码块。随着JDK新版本的发布,synchronized关键字的执行效率上得到很大提升,在开发中使用synchronized关键字的比率还是比较大的。多线程访问volatile不会发生阻塞,而synchronize

stl的sort和手写快排的运行效率哪个比较高?

STL的sort必然要比你自己写的快排要快,因为你自己手写一个这么复杂的sort,那就太闲了。STL的sort是尽量让复杂度维持在O(N log N)的,因此就有了各种的Hybrid sort algorithm。 题主你提到的先quicksort到一定深度之后就转为heapsort,这种是introsort。 每种STL实现使用的算法各有不同,GNU Standard C++ Lib

研究生生涯中一些比较重要的网址

Mali GPU相关: 1.http://malideveloper.arm.com/resources/sdks/opengl-es-sdk-for-linux/ 2.http://malideveloper.arm.com/resources/tools/arm-development-studio-5/ 3.https://www.khronos.org/opengles/sdk/do

性能测试工具 wrk,ab,locust,Jmeter 压测结果比较

前言 在开发服务端软件时,经常需要进行性能测试,一般我采用手写性能测试代码的方式进行测试,那有什么现成的好的性能测试工具吗? 性能测试工具 wrk,ab,locust,Jmeter 压测结果比较 详见: 性能测试工具 wrk,ab,locust,Jmeter 压测结果比较 Jmeter性能测试 入门

MongoDB学习—(6)MongoDB的find查询比较符

首先,先通过以下函数向BookList集合中插入10000条数据 function insertN(obj,n){var i=0;while(i<n){obj.insert({id:i,name:"bookNumber"+i,publishTime:i+2000})i++;}}var BookList=db.getCollection("BookList")调用函数,这样,BookList

超声波清洗机哪个品牌比较好一点的?清洁力强的超声波清洗机品牌

随着生活水平的不断提升和幸福感的增强,珠宝、饰品和眼镜等物品已成为许多家庭的常备之物。然而,这些贵重细小的物件易于积聚微尘与隐形细菌,长此以往可能悄悄影响家人的健康,毕竟细菌是肉眼难以察觉的隐患。超声波清洗机应运而生,它以高科技手段有效地解决了这一隐忧,深层清洁,守护家人免受微小污染物的潜在威胁。不过现在市面上超声波清洗机品牌挺多的,究竟有哪些品牌的超声波清洗机比较好一点呢?接下来就为大家带来四款

【JavaScript】版本号和日期时间的比较

JS使用 ‘>’ 运算符比较两个字符串大小时,会把字符串转换为ASCII码依次比较。 比较标准时间格式可以直接使用 ’ > ’ 比较; (2018-07-20格式)

俩个float数之间比较大小

需求:俩个标识金额的浮点数比较大小。 问题:相等无法成立。经过var_dump()打印,俩个浮点数数值 一样大。 解决:把标识金额的浮点数乘以100,抓换成整形,在做比较。即可使相等成立

UIFrameWork-基于UGUI-如何比较设计优劣

一、简化需求 1、从界面1打开界面2,屏蔽界面1事件响应。 2、关闭界面2,恢复界面1的事件响应。 二、暴力方案 1、对象1设置屏蔽自身事件响应,对象1通知对象2显示。 2、对象1设置恢复自身事件响应,对象2通知对象1显示。 三、UIFrameWork方案 1、对象1通知管理器对象要打开的界面信息(字符串),管理器对象通知对象1屏蔽事件响应,管理器通知对象2显示。 2、对象2通知管