imfilter和conv2的区别

在caffe中采用了卷积层训练好网络结构,如果想要在matlab中读取训练好的权重和偏置,然后将测试集进行卷积,该用imfilter还是conv2,两者有何区别?卷积应该是将卷积核在图像上移动,加权求和,但是为何其手动计算结果和conv2中选valid参数的结果不同?
已邀请:

孙琳钧

赞同来自:

imfilter是做图像滤波用的,conv2做的是二维卷积。imfilter在实现图像滤波的时候提供两种计算方式:相关(correlation)和卷积(convolution),默认使用的是correlation。correlation是filter2函数采用的操作方式,convolution对应的才是conv2采用的操作,而filter2是通过先将滤波器旋转180度再调用conv2来实现的,所以当滤波器或者卷积核不是中心对称的时候这两者会有不同的结果,使用imfilter时在参数里加上'conv'就能得到和conv2一样的结果了。至于valid这个参数,imfilter没有提供valid的选项,只有same和full,如果想比较imfilter和conv2的结果,这一项的参数需设置成相同的,具体的可以参考matlab的help文件,imfilter conv2 filter2 

要回复问题请先登录注册