【发布时间】:2013-01-29 00:42:17
【问题描述】:
我有一个大矩阵(图像)和一个小模板。我想将小矩阵与较大的矩阵进行卷积。例如,蓝色区域是我想用于卷积的部分。换句话说,我可以对所有图像使用卷积,但由于 CPU 时间增加,因此,我想只关注所需的蓝色部分。
MATLAB 中是否有任何命令可用于此卷积?或者,我如何强制卷积函数只使用特定的不规则部分进行卷积。
【问题讨论】:
-
如果您想提高卷积代码的性能,您是否尝试过对其进行分析?例如,在
conv2中,您使用的是single而不是double? -
所以我认为你最好的选择是获得最小的矩形边界矩形。 conv2 不针对稀疏输入进行优化。我认为 filter2 也没有针对稀疏输入进行优化。原因之一是因为它可能使用 SIMD 指令。使用 SIMD,跳过小洞实际上并不能加快速度。
-
所以这家伙的代码过去帮助了我mathworks.com/matlabcentral/fileexchange/…。不确定它是否与您的使用有关。基本上,如果您要将小事与大事进行卷积,则可以使用 SVD 将小事分解成可分离的组件...
-
这个线程在某种程度上解决了这个问题:mathworks.com/matlabcentral/answers/5011 虽然我不会说这是关于这个问题的最终决定......
标签: image matlab image-processing signal-processing convolution